diff --git a/.ci/check-metadata.sh b/.ci/check-metadata.sh new file mode 100755 index 000000000000..23ba1754cd83 --- /dev/null +++ b/.ci/check-metadata.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +cd "$(dirname "$(readlink -f "$BASH_SOURCE")")/.." + +# metadata.sh takes directories with a 'metadata.json' in them +# metadata.json is expected in every repo +# "." so that the canonical source metadata.json is checked too +./metadata.sh */ . diff --git a/.ci/check-ymlfmt.sh b/.ci/check-ymlfmt.sh index 5315948d9a0b..161f4f54caae 100755 --- a/.ci/check-ymlfmt.sh +++ b/.ci/check-ymlfmt.sh @@ -3,7 +3,7 @@ set -Eeuo pipefail cd "$(dirname "$(readlink -f "$BASH_SOURCE")")/.." -files="$(find -name '*.yml' -not -path './.github/*')" +files="$(find '(' -name '*.yml' -o -name '*.yaml' ')' -not -path './.github/*')" need=() needdiff= for f in $files; do diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 130d1c4e7cdc..1d61341dfce3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,30 +19,35 @@ jobs: markdownfmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: docker pull tianon/markdownfmt - run: .ci/check-markdownfmt.sh ymlfmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: docker pull tianon/ymlfmt - run: .ci/check-ymlfmt.sh short: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: .ci/check-short.sh required-files: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: .ci/check-required-files.sh no-readme: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - run: .ci/check-pr-no-readme.sh if: ${{ github.event_name == 'pull_request' }} + metadata: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: .ci/check-metadata.sh diff --git a/.template-helpers/compose.md b/.template-helpers/compose.md index 901a1af15216..ef16614cd709 100644 --- a/.template-helpers/compose.md +++ b/.template-helpers/compose.md @@ -1,5 +1,5 @@ -... via [`docker-compose`](https://github.com/docker/compose) +... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `%%REPO%%`: +Example `compose.yaml` for `%%REPO%%`: -%%COMPOSE-YML%% +%%COMPOSE-YAML%% diff --git a/.template-helpers/generate-dockerfile-links-partial.sh b/.template-helpers/generate-dockerfile-links-partial.sh index 3f0a1c91a734..126fcbea3920 100755 --- a/.template-helpers/generate-dockerfile-links-partial.sh +++ b/.template-helpers/generate-dockerfile-links-partial.sh @@ -13,7 +13,7 @@ if [ -z "${BASHBREW_LIBRARY:-}" ]; then repo="https://github.com/docker-library/official-images/raw/master/library/$repo" fi -if [ -n "$ARCH_SPECIFIC_DOCS" ] && archTags="$(bashbrew cat --format '{{ range .Entries }}{{ if .HasArchitecture arch }}{{ .Tags | first }}{{ "\n" }}{{ end }}{{ end }}' "$repo")" && [ -z "$archTags" ]; then +if [ -n "$ARCH_SPECIFIC_DOCS" ] && archTags="$(bashbrew list --uniq --arch-filter "$repo")" && [ -z "$archTags" ]; then echo "**WARNING:** THIS IMAGE *IS NOT SUPPORTED* ON THE \`$BASHBREW_ARCH\` ARCHITECTURE" exit fi diff --git a/.template-helpers/generate-dockerfile-links-partial.tmpl b/.template-helpers/generate-dockerfile-links-partial.tmpl index 2889640fb4ce..64472167decb 100644 --- a/.template-helpers/generate-dockerfile-links-partial.tmpl +++ b/.template-helpers/generate-dockerfile-links-partial.tmpl @@ -33,16 +33,13 @@ This template defines the "Supported tags and Dockerfile links" portion of an im {{- $url = $url | ternary $url (hasPrefix "https://git.launchpad.net/" $repoUrlBase | ternary (print $repoUrlBase "/tree/" $dockerfilePath "?h=" ($e.ArchGitFetch $arch) "&id=" $gitCommit) "") -}} {{- /* TODO decide what to do (if anything) about other non-GitHub repos with respect to URL */ -}} - {{- if $i -}} - {{- "\n" -}} - {{- end -}} - - {{- "\t" -}} {{- if $url -}} [ {{- end -}} ` {{- $e.Tags | join "`, `" -}} ` {{- if $url -}} ]( {{- $url -}} ) {{- end -}} + + {{- "\n\n" -}} {{- end -}} -{{- "\n\n" -}} {{- if (len $sharedTagGroups) -}} {{- "## Shared Tags\n\n" -}} @@ -53,7 +50,7 @@ This template defines the "Supported tags and Dockerfile links" portion of an im {{- if (len $entries) -}} {{- "-\t`" -}} {{ .SharedTags | join "`, `" }} - {{- "`:\n" -}} + {{- "`:\n\n" -}} {{- range $i, $e := $entries -}} {{- $arch := $archSpecific | ternary arch ($e.HasArchitecture arch | ternary arch ($e.Architectures | first)) -}} @@ -81,6 +78,7 @@ This template defines the "Supported tags and Dockerfile links" portion of an im {{- "\n" -}} {{- end -}} + {{- "\n" -}} {{- end -}} {{- end -}} {{- "\n" -}} diff --git a/.template-helpers/stack.md b/.template-helpers/stack.md deleted file mode 100644 index 2ceda127fe71..000000000000 --- a/.template-helpers/stack.md +++ /dev/null @@ -1,7 +0,0 @@ -... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) - -Example `docker-compose.yml` for `%%REPO%%`: - -%%STACK-YML%% - -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=%%STACK-URL%%) diff --git a/Dockerfile b/Dockerfile index b849af2edf39..66365c00b774 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM perl:5.30-buster +FROM perl:5.39-bookworm RUN set -eux; \ apt-get update; \ diff --git a/README.md b/README.md index fd46f6562c67..9b6a68746611 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,9 @@ All Markdown files here are run through [tianon's fork of `markdownfmt`](https:/ 6. [`license.md`](#licensemd) 7. [`logo.png`](#logopng) 8. [`maintainer.md`](#maintainermd) - 9. [`README-short.txt`](#readme-shorttxt) - 10. [`stack.yml`](#stackyml) + 9. [`metadata.json`](#metadatajson) + 10. [`README-short.txt`](#readme-shorttxt) + 11. [`compose.yaml`](#composeyaml) 5. [Files for main Docs repo](#files-for-main-docs-repo) 1. [`update.sh`](#updatesh) 2. [`markdownfmt.sh` and `ymlfmt.sh`](#markdownfmtsh-and-ymlfmtsh) @@ -61,6 +62,7 @@ After opening your Pull Request the changes will be checked by an automated `mar - Create a `license.md` (required) - Create a `maintainer.md` (required) - Create a `github-repo` (required) +- Create a `metadata.json` (required) - Add a `logo.png` (recommended) Optionally: @@ -128,17 +130,29 @@ The image is automatically scaled to a 120 pixel square for the top of the Docke This file should contain a link to the maintainers of the Dockerfile. +## `metadata.json` + +This file contains data about the repo for Docker Hub. The minimum file is defined below. `./metadata.sh [repo-name]` must be used to correctly format it (use `-w` to apply its suggested format changes). Only three sorted unique Docker Hub categories are allowed. `metadata.json` in the root contains the list of categories to choose from. See descriptions for the categories on the [Docker docs site](https://docs.docker.com/docker-hub/repos/categories/). + +```json +{ + "hub": { + "categories": [] + } +} +``` + ## `README-short.txt` This is the short description for the Docker Hub, limited to 100 characters in a single line. > Go (golang) is a general purpose, higher-level, imperative programming language. -## `stack.yml` +## `compose.yaml` -This optional file contains a small, working [Compose file for Docker Swarm](https://docs.docker.com/compose/compose-file/compose-file-v3/) showing off how to use the image. To use the `stack.yml`, add `%%STACK%%` to the `content.md` and this will embed the YAML along with a link to directly try it in [Play with Docker](https://labs.play-with-docker.com/). +This optional file contains a small, working [Compose file](https://docs.docker.com/reference/compose-file/) showing off how to use the image. To use the `compose.yaml`, add `%%COMPOSE%%` to the `content.md` and this will embed the YAML. -The file must work via `docker stack deploy` since that is how Play with Docker will launch it, but it is helpful for users to try locally if it works for `docker-compose` as well. Other official images may be referenced within the YAML to demonstrate the functionality of the image, but no images external to the Docker Official Images program may be referenced. +Other official images may be referenced within the YAML to demonstrate the functionality of the image, but no images external to the Docker Official Images program may be referenced. # Files for main Docs repo @@ -146,7 +160,7 @@ The file must work via `docker stack deploy` since that is how Play with Docker This is the main script used to generate the `README.md` files for each image. The generated file is committed along with the files used to generate it. Accepted arguments are which image(s) you want to update or no arguments to update all of them. -This script assumes [`bashbrew`](https://github.com/docker-library/official-images/tree/81e90ca8dcec892ade7eb348cba5a4a5d6851e17/bashbrew) is in your `PATH` (for scraping relevant tag information from the library manifest file for each repository). +This script assumes [`bashbrew`](https://github.com/docker-library/bashbrew/releases) is in your `PATH` (for scraping relevant tag information from the library manifest file for each repository). ## `markdownfmt.sh` and `ymlfmt.sh` diff --git a/adminer/README.md b/adminer/README.md index 049e52bc7ae6..64c1197cc231 100644 --- a/adminer/README.md +++ b/adminer/README.md @@ -24,8 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`4.8.1-standalone`, `4-standalone`, `standalone`, `4.8.1`, `4`, `latest`](https://github.com/TimWolla/docker-adminer/blob/c9c54b18f79a66409a3153a94f629ea68f08647c/4/Dockerfile) -- [`4.8.1-fastcgi`, `4-fastcgi`, `fastcgi`](https://github.com/TimWolla/docker-adminer/blob/c9c54b18f79a66409a3153a94f629ea68f08647c/4/fastcgi/Dockerfile) +- [`5.3.0`, `5`, `latest`, `5.3.0-standalone`, `5-standalone`, `standalone`](https://github.com/TimWolla/docker-adminer/blob/51202fad34e0f5ec140451e9b6bdba9d1068e329/5/Dockerfile) + +- [`5.3.0-fastcgi`, `5-fastcgi`, `fastcgi`](https://github.com/TimWolla/docker-adminer/blob/51202fad34e0f5ec140451e9b6bdba9d1068e329/5/fastcgi/Dockerfile) + +- [`4.17.1`, `4`, `4.17.1-standalone`, `4-standalone`](https://github.com/TimWolla/docker-adminer/blob/0c0fd187e8646ad61fe592a80d66abec2c1dc951/4/Dockerfile) + +- [`4.17.1-fastcgi`, `4-fastcgi`](https://github.com/TimWolla/docker-adminer/blob/0c0fd187e8646ad61fe592a80d66abec2c1dc951/4/fastcgi/Dockerfile) # Quick reference (cont.) @@ -33,7 +38,7 @@ WARNING: [https://github.com/TimWolla/docker-adminer/issues](https://github.com/TimWolla/docker-adminer/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/adminer/), [`arm32v5`](https://hub.docker.com/r/arm32v5/adminer/), [`arm32v7`](https://hub.docker.com/r/arm32v7/adminer/), [`arm64v8`](https://hub.docker.com/r/arm64v8/adminer/), [`i386`](https://hub.docker.com/r/i386/adminer/), [`mips64le`](https://hub.docker.com/r/mips64le/adminer/), [`ppc64le`](https://hub.docker.com/r/ppc64le/adminer/), [`s390x`](https://hub.docker.com/r/s390x/adminer/) + [`amd64`](https://hub.docker.com/r/amd64/adminer/), [`arm32v6`](https://hub.docker.com/r/arm32v6/adminer/), [`arm32v7`](https://hub.docker.com/r/arm32v7/adminer/), [`arm64v8`](https://hub.docker.com/r/arm64v8/adminer/), [`i386`](https://hub.docker.com/r/i386/adminer/), [`ppc64le`](https://hub.docker.com/r/ppc64le/adminer/), [`riscv64`](https://hub.docker.com/r/riscv64/adminer/), [`s390x`](https://hub.docker.com/r/s390x/adminer/) - **Published image artifact details**: [repo-info repo's `repos/adminer/` directory](https://github.com/docker-library/repo-info/blob/master/repos/adminer) ([history](https://github.com/docker-library/repo-info/commits/master/repos/adminer)) @@ -78,15 +83,13 @@ Then point your web server to port 9000 of the container. Note: This exposes the FastCGI socket to the Internet. Make sure to add proper firewall rules or use a private Docker network instead to prevent a direct access. -### ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +### ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `adminer`: +Example `compose.yaml` for `adminer`: ```yaml # Use root/example as user/password credentials -version: '3.1' - services: adminer: @@ -102,9 +105,7 @@ services: MYSQL_ROOT_PASSWORD: example ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/9efeec18b6b2ed232cf0fbd3914b6211e16e242c/adminer/stack.yml) - -Run `docker stack deploy -c stack.yml adminer` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ### Loading plugins @@ -177,7 +178,7 @@ To add support for the other drivers you will need to install the following PHP # License -View [license information](https://github.com/vrana/adminer/blob/master/readme.txt) for the software contained in this image. +View [license information](https://github.com/vrana/adminer/blob/master/LICENSE) for the software contained in this image. 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). diff --git a/adminer/stack.yml b/adminer/compose.yaml similarity index 93% rename from adminer/stack.yml rename to adminer/compose.yaml index 56aa33b59f26..8cff90103332 100644 --- a/adminer/stack.yml +++ b/adminer/compose.yaml @@ -1,7 +1,5 @@ # Use root/example as user/password credentials -version: '3.1' - services: adminer: diff --git a/adminer/content.md b/adminer/content.md index 8ff1691833a8..d38e5286a24a 100644 --- a/adminer/content.md +++ b/adminer/content.md @@ -30,9 +30,9 @@ Then point your web server to port 9000 of the container. Note: This exposes the FastCGI socket to the Internet. Make sure to add proper firewall rules or use a private Docker network instead to prevent a direct access. -### %%STACK%% +### %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ### Loading plugins diff --git a/adminer/license.md b/adminer/license.md index 120e86ad3c0c..010ac01fa2f0 100644 --- a/adminer/license.md +++ b/adminer/license.md @@ -1 +1 @@ -View [license information](https://github.com/vrana/adminer/blob/master/readme.txt) for the software contained in this image. +View [license information](https://github.com/vrana/adminer/blob/master/LICENSE) for the software contained in this image. diff --git a/adminer/metadata.json b/adminer/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/adminer/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/aerospike/README.md b/aerospike/README.md index ab5c033ce01e..62767a7002d6 100644 --- a/aerospike/README.md +++ b/aerospike/README.md @@ -17,20 +17,21 @@ WARNING: # Quick reference - **Maintained by**: - [Aerospike, Inc.](https://github.com/aerospike/aerospike-server-enterprise.docker) + [Aerospike, Inc.](https://github.com/aerospike/aerospike-server.docker) - **Where to get help**: [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) # Supported tags and respective `Dockerfile` links -- [`ee-7.0.0.0`, `ee-7.0.0.0_2`](https://github.com/aerospike/aerospike-server.docker/blob/db7c937b655a688931a63e2b112aef89fa8c4c90/enterprise/debian12/Dockerfile) -- [`ce-7.0.0.0`, `ce-7.0.0.0_2`](https://github.com/aerospike/aerospike-server.docker/blob/db7c937b655a688931a63e2b112aef89fa8c4c90/community/debian12/Dockerfile) +- [`ee-8.0.0.8`, `ee-8.0.0.8_1`](https://github.com/aerospike/aerospike-server.docker/blob/210708576d3aa769dec734576a5b2788b013aea1/enterprise/ubuntu24.04/Dockerfile) + +- [`ce-8.0.0.8`, `ce-8.0.0.8_1`](https://github.com/aerospike/aerospike-server.docker/blob/210708576d3aa769dec734576a5b2788b013aea1/community/ubuntu24.04/Dockerfile) # Quick reference (cont.) - **Where to file issues**: - [the Aerospike Forums](https://discuss.aerospike.com) or [GitHub](https://github.com/aerospike/aerospike-server-enterprise.docker/issues) + [the Aerospike Forums](https://discuss.aerospike.com) or [GitHub](https://github.com/aerospike/aerospike-server.docker/issues) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) [`amd64`](https://hub.docker.com/r/amd64/aerospike/), [`arm64v8`](https://hub.docker.com/r/arm64v8/aerospike/) @@ -52,7 +53,7 @@ WARNING: [Aerospike](http://aerospike.com) is a distributed NoSQL database purposefully designed for high performance web scale applications. Aerospike supports key-value and document data models, and has multiple data types including List, Map, HyperLogLog, GeoJSON, and Blob. Aerospike's patented hybrid memory architecture delivers predictable high performance at scale and high data density per node. -![logo](https://raw.githubusercontent.com/docker-library/docs/9944063c59872460e15f6ecb19c1419c8124752f/aerospike/logo.png) +![logo](https://raw.githubusercontent.com/docker-library/docs/42ae663b4b922326e5c55c7c513c8d04a11f9aaf/aerospike/logo.png) ## Getting Started @@ -217,7 +218,7 @@ For more, see [How do I get a 2 nodes Aerospike cluster running quickly in Docke ## Image Versions -These images are based on [debian:*-slim](https://hub.docker.com/_/debian). +These images are based on [ubuntu:24.04](https://hub.docker.com/_/ubuntu). ### ee-[version] diff --git a/aerospike/content.md b/aerospike/content.md index 62f9d81680a3..22636b99fe26 100644 --- a/aerospike/content.md +++ b/aerospike/content.md @@ -169,7 +169,7 @@ For more, see [How do I get a 2 nodes Aerospike cluster running quickly in Docke ## Image Versions -These images are based on [debian:*-slim](https://hub.docker.com/_/debian). +These images are based on [ubuntu:24.04](https://hub.docker.com/_/ubuntu). ### ee-[version] diff --git a/aerospike/github-repo b/aerospike/github-repo index bfe29fcaf8f4..91cf2ac3e131 100644 --- a/aerospike/github-repo +++ b/aerospike/github-repo @@ -1 +1 @@ -https://github.com/aerospike/aerospike-server-enterprise.docker +https://github.com/aerospike/aerospike-server.docker diff --git a/aerospike/logo.png b/aerospike/logo.png index 5b16337ca923..d2f508ec62cf 100644 Binary files a/aerospike/logo.png and b/aerospike/logo.png differ diff --git a/aerospike/metadata.json b/aerospike/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/aerospike/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/almalinux/README.md b/almalinux/README.md index c4443e9e718c..e3bd9178a6fe 100644 --- a/almalinux/README.md +++ b/almalinux/README.md @@ -24,10 +24,21 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8`, `8.8`, `8.8-20230718`](https://github.com/AlmaLinux/docker-images/blob/a7e0d4c97e8c2ab80dfada8685b44831f7c8d6ad/Dockerfile-x86_64-default) -- [`8-minimal`, `8.8-minimal`, `8.8-minimal-20230718`](https://github.com/AlmaLinux/docker-images/blob/a7e0d4c97e8c2ab80dfada8685b44831f7c8d6ad/Dockerfile-x86_64-minimal) -- [`latest`, `9`, `9.2`, `9.2-20230718`](https://github.com/AlmaLinux/docker-images/blob/764a53a590bc415278c977ad43f42f4a836b8c3f/Dockerfile-x86_64-default) -- [`minimal`, `9-minimal`, `9.2-minimal`, `9.2-minimal-20230718`](https://github.com/AlmaLinux/docker-images/blob/764a53a590bc415278c977ad43f42f4a836b8c3f/Dockerfile-x86_64-minimal) +- [`10-kitten`, `10-kitten-20250611`](https://github.com/AlmaLinux/container-images/blob/6135d73e0784e8ca6ca279d509e095e0daf5b6a9/default/amd64/Dockerfile) + +- [`10-kitten-minimal`, `10-kitten-minimal-20250611`](https://github.com/AlmaLinux/container-images/blob/6135d73e0784e8ca6ca279d509e095e0daf5b6a9/minimal/amd64/Dockerfile) + +- [`10`, `10.0`, `10.0-20250611`](https://github.com/AlmaLinux/container-images/blob/053340d6a579e7c6242951931f3a1b18717887ef/default/amd64/Dockerfile) + +- [`10-minimal`, `10.0-minimal`, `10.0-minimal-20250611`](https://github.com/AlmaLinux/container-images/blob/053340d6a579e7c6242951931f3a1b18717887ef/minimal/amd64/Dockerfile) + +- [`8`, `8.10`, `8.10-20250611`](https://github.com/AlmaLinux/container-images/blob/5e437611704aff1c6eb7c81a2b097fae4f0bcaae/default/amd64/Dockerfile) + +- [`8-minimal`, `8.10-minimal`, `8.10-minimal-20250611`](https://github.com/AlmaLinux/container-images/blob/5e437611704aff1c6eb7c81a2b097fae4f0bcaae/minimal/amd64/Dockerfile) + +- [`latest`, `9`, `9.6`, `9.6-20250611`](https://github.com/AlmaLinux/container-images/blob/39a9e4c8fa6266f1d58af9ba922e635694eeb380/default/amd64/Dockerfile) + +- [`minimal`, `9-minimal`, `9.6-minimal`, `9.6-minimal-20250611`](https://github.com/AlmaLinux/container-images/blob/39a9e4c8fa6266f1d58af9ba922e635694eeb380/minimal/amd64/Dockerfile) # Quick reference (cont.) diff --git a/almalinux/metadata.json b/almalinux/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/almalinux/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/alpine/README.md b/alpine/README.md index 490fdb2022dd..b0e2f8e41b9f 100644 --- a/alpine/README.md +++ b/alpine/README.md @@ -24,11 +24,15 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`20230901`, `edge`](https://github.com/alpinelinux/docker-alpine/blob/9f17b1fa5a5c3ea6de378b610f2eb2fdcdfb15b3/x86_64/Dockerfile) -- [`3.18.4`, `3.18`, `3`, `latest`](https://github.com/alpinelinux/docker-alpine/blob/e7f8cc3aebd309337497c1e794db9aabbb9902c0/x86_64/Dockerfile) -- [`3.17.5`, `3.17`](https://github.com/alpinelinux/docker-alpine/blob/bb3a15580db27a6a5f75909040f98ac1ac6d39c1/x86_64/Dockerfile) -- [`3.16.7`, `3.16`](https://github.com/alpinelinux/docker-alpine/blob/6a4bd9a98102f701834ef7d6fe2215dc0b3288c2/x86_64/Dockerfile) -- [`3.15.10`, `3.15`](https://github.com/alpinelinux/docker-alpine/blob/e16b9737b016b9275598e6946a677ee4205070ba/x86_64/Dockerfile) +- [`20250108`, `edge`](https://github.com/alpinelinux/docker-alpine/blob/c1f1de232c970df2285c03050ab3747b8563164f/x86_64/Dockerfile) + +- [`3.22.0`, `3.22`, `3`, `latest`](https://github.com/alpinelinux/docker-alpine/blob/5213c5a71c73d39d5896657909e753effb1c05ff/x86_64/Dockerfile) + +- [`3.21.3`, `3.21`](https://github.com/alpinelinux/docker-alpine/blob/17fe3d1e2d2cbf54d745139eab749c252e35b883/x86_64/Dockerfile) + +- [`3.20.6`, `3.20`](https://github.com/alpinelinux/docker-alpine/blob/a0db1d60e576114995a27356e6dda8145293d6f8/x86_64/Dockerfile) + +- [`3.19.7`, `3.19`](https://github.com/alpinelinux/docker-alpine/blob/7cfdb838c6f47bb3845c25f1674a9c3a44d8bafb/x86_64/Dockerfile) # Quick reference (cont.) diff --git a/alpine/metadata.json b/alpine/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/alpine/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/alt/README.md b/alt/README.md index 6b9a1ef0baf9..9ef377cc7f2e 100644 --- a/alt/README.md +++ b/alt/README.md @@ -24,9 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`p10`, `latest`](https://github.com/alt-cloud/docker-brew-alt/blob/75c4d0029825ab9802240f2a086395d728e1853f/x86_64/Dockerfile) -- [`p9`](https://github.com/alt-cloud/docker-brew-alt/blob/d1f01d08ac608909403bc99501af07065d7be769/x86_64/Dockerfile) -- [`sisyphus`](https://github.com/alt-cloud/docker-brew-alt/blob/cf707869d0d33a76fa3eed5eb2592c07a0a11e23/x86_64/Dockerfile) +- [`p10`, `latest`](https://github.com/alt-cloud/docker-brew-alt/blob/141eb568487cf0a98374d173e8641a00e234459a/x86_64/Dockerfile) + +- [`sisyphus`](https://github.com/alt-cloud/docker-brew-alt/blob/37a06effa12c3a7fae2ed60d6ae73da507ea1817/x86_64/Dockerfile) + +- [`p11`](https://github.com/alt-cloud/docker-brew-alt/blob/73a73fc0c51684d2c1eee3b6640a6577a4bea19e/x86_64/Dockerfile) # Quick reference (cont.) @@ -36,7 +38,7 @@ WARNING: For create new bug, please use [ALT's bugzilla page](https://bugzilla.altlinux.org/enter_bug.cgi?product=Docker) (choose `Official image` as component and include details about image problems in the description) or [GitHub](https://github.com/alt-cloud/docker-brew-alt/issues). - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/alt/), [`arm32v7`](https://hub.docker.com/r/arm32v7/alt/), [`arm64v8`](https://hub.docker.com/r/arm64v8/alt/), [`i386`](https://hub.docker.com/r/i386/alt/), [`ppc64le`](https://hub.docker.com/r/ppc64le/alt/) + [`amd64`](https://hub.docker.com/r/amd64/alt/), [`arm64v8`](https://hub.docker.com/r/arm64v8/alt/), [`i386`](https://hub.docker.com/r/i386/alt/), [`riscv64`](https://hub.docker.com/r/riscv64/alt/) - **Published image artifact details**: [repo-info repo's `repos/alt/` directory](https://github.com/docker-library/repo-info/blob/master/repos/alt) ([history](https://github.com/docker-library/repo-info/commits/master/repos/alt)) diff --git a/alt/metadata.json b/alt/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/alt/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/amazoncorretto/README.md b/amazoncorretto/README.md index 2590646ddc95..9e9a7b7392f5 100644 --- a/amazoncorretto/README.md +++ b/amazoncorretto/README.md @@ -24,42 +24,89 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8`, `8u392`, `8u392-al2`, `8-al2-full`, `8-al2-jdk`, `8-al2-generic`, `8u392-al2-generic`, `8-al2-generic-jdk`, `latest`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jdk/al2-generic/Dockerfile) -- [`8-al2023`, `8u392-al2023`, `8-al2023-jdk`, `8-al2023-jre`, `8u392-al2023-jre`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jdk/al2023/Dockerfile) -- [`8-al2-native-jre`, `8u392-al2-native-jre`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jre/al2/Dockerfile) -- [`8-al2-native-jdk`, `8u392-al2-native-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jdk/al2/Dockerfile) -- [`8-alpine3.16`, `8u392-alpine3.16`, `8-alpine3.16-full`, `8-alpine3.16-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jdk/alpine/3.16/Dockerfile) -- [`8-alpine3.16-jre`, `8u392-alpine3.16-jre`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jre/alpine/3.16/Dockerfile) -- [`8-alpine3.17`, `8u392-alpine3.17`, `8-alpine3.17-full`, `8-alpine3.17-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jdk/alpine/3.17/Dockerfile) -- [`8-alpine3.17-jre`, `8u392-alpine3.17-jre`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jre/alpine/3.17/Dockerfile) -- [`8-alpine3.18`, `8u392-alpine3.18`, `8-alpine3.18-full`, `8-alpine3.18-jdk`, `8-alpine`, `8u392-alpine`, `8-alpine-full`, `8-alpine-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jdk/alpine/3.18/Dockerfile) -- [`8-alpine3.18-jre`, `8u392-alpine3.18-jre`, `8-alpine-jre`, `8u392-alpine-jre`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/8/jre/alpine/3.18/Dockerfile) -- [`11`, `11.0.21`, `11.0.21-al2`, `11-al2-full`, `11-al2-jdk`, `11-al2-generic`, `11.0.21-al2-generic`, `11-al2-generic-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/11/jdk/al2-generic/Dockerfile) -- [`11-al2023`, `11.0.21-al2023`, `11-al2023-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/11/jdk/al2023/Dockerfile) -- [`11-al2023-headless`, `11.0.21-al2023-headless`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/11/headless/al2023/Dockerfile) -- [`11-al2023-headful`, `11.0.21-al2023-headful`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/11/headful/al2023/Dockerfile) -- [`11-al2-native-headless`, `11.0.21-al2-native-headless`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/11/headless/al2/Dockerfile) -- [`11-al2-native-jdk`, `11.0.21-al2-native-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/11/jdk/al2/Dockerfile) -- [`11-alpine3.16`, `11.0.21-alpine3.16`, `11-alpine3.16-full`, `11-alpine3.16-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/11/jdk/alpine/3.16/Dockerfile) -- [`11-alpine3.17`, `11.0.21-alpine3.17`, `11-alpine3.17-full`, `11-alpine3.17-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/11/jdk/alpine/3.17/Dockerfile) -- [`11-alpine3.18`, `11.0.21-alpine3.18`, `11-alpine3.18-full`, `11-alpine3.18-jdk`, `11-alpine`, `11.0.21-alpine`, `11-alpine-full`, `11-alpine-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/11/jdk/alpine/3.18/Dockerfile) -- [`17`, `17.0.9`, `17.0.9-al2`, `17-al2-full`, `17-al2-jdk`, `17-al2-generic`, `17.0.9-al2-generic`, `17-al2-generic-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/jdk/al2-generic/Dockerfile) -- [`17-al2023`, `17.0.9-al2023`, `17-al2023-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/jdk/al2023/Dockerfile) -- [`17-al2023-headless`, `17.0.9-al2023-headless`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/headless/al2023/Dockerfile) -- [`17-al2023-headful`, `17.0.9-al2023-headful`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/headful/al2023/Dockerfile) -- [`17-al2-native-headless`, `17.0.9-al2-native-headless`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/headless/al2/Dockerfile) -- [`17-al2-native-headful`, `17.0.9-al2-native-headful`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/headful/al2/Dockerfile) -- [`17-al2-native-jdk`, `17.0.9-al2-native-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/jdk/al2/Dockerfile) -- [`17-alpine3.16`, `17.0.9-alpine3.16`, `17-alpine3.16-full`, `17-alpine3.16-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/jdk/alpine/3.16/Dockerfile) -- [`17-alpine3.17`, `17.0.9-alpine3.17`, `17-alpine3.17-full`, `17-alpine3.17-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/jdk/alpine/3.17/Dockerfile) -- [`17-alpine3.18`, `17.0.9-alpine3.18`, `17-alpine3.18-full`, `17-alpine3.18-jdk`, `17-alpine`, `17.0.9-alpine`, `17-alpine-full`, `17-alpine-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/17/jdk/alpine/3.18/Dockerfile) -- [`21`, `21.0.1`, `21.0.1-al2`, `21-al2-full`, `21-al2-jdk`, `21-al2-generic`, `21.0.1-al2-generic`, `21-al2-generic-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/21/jdk/al2-generic/Dockerfile) -- [`21-al2023`, `21.0.1-al2023`, `21-al2023-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/21/jdk/al2023/Dockerfile) -- [`21-al2023-headless`, `21.0.1-al2023-headless`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/21/headless/al2023/Dockerfile) -- [`21-al2023-headful`, `21.0.1-al2023-headful`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/21/headful/al2023/Dockerfile) -- [`21-alpine3.16`, `21.0.1-alpine3.16`, `21-alpine3.16-full`, `21-alpine3.16-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/21/jdk/alpine/3.16/Dockerfile) -- [`21-alpine3.17`, `21.0.1-alpine3.17`, `21-alpine3.17-full`, `21-alpine3.17-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/21/jdk/alpine/3.17/Dockerfile) -- [`21-alpine3.18`, `21.0.1-alpine3.18`, `21-alpine3.18-full`, `21-alpine3.18-jdk`, `21-alpine`, `21.0.1-alpine`, `21-alpine-full`, `21-alpine-jdk`](https://github.com/corretto/corretto-docker/blob/7b82f91b119baacde36142f6c72e25a3963c0831/21/jdk/alpine/3.18/Dockerfile) +- [`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) + +- [`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) + +- [`8-al2-native-jre`, `8u452-al2-native-jre`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jre/al2/Dockerfile) + +- [`8-al2-native-jdk`, `8u452-al2-native-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jdk/al2/Dockerfile) + +- [`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) + +- [`8-alpine3.19-jre`, `8u452-alpine3.19-jre`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jre/alpine/3.19/Dockerfile) + +- [`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) + +- [`8-alpine3.20-jre`, `8u452-alpine3.20-jre`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jre/alpine/3.20/Dockerfile) + +- [`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) + +- [`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) + +- [`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) + +- [`11-al2023`, `11.0.27-al2023`, `11-al2023-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/jdk/al2023/Dockerfile) + +- [`11-al2023-headless`, `11.0.27-al2023-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/headless/al2023/Dockerfile) + +- [`11-al2023-headful`, `11.0.27-al2023-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/headful/al2023/Dockerfile) + +- [`11-al2-native-headless`, `11.0.27-al2-native-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/headless/al2/Dockerfile) + +- [`11-al2-native-jdk`, `11.0.27-al2-native-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/jdk/al2/Dockerfile) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`17-al2023`, `17.0.15-al2023`, `17-al2023-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/jdk/al2023/Dockerfile) + +- [`17-al2023-headless`, `17.0.15-al2023-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/headless/al2023/Dockerfile) + +- [`17-al2023-headful`, `17.0.15-al2023-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/headful/al2023/Dockerfile) + +- [`17-al2-native-headless`, `17.0.15-al2-native-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/headless/al2/Dockerfile) + +- [`17-al2-native-headful`, `17.0.15-al2-native-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/headful/al2/Dockerfile) + +- [`17-al2-native-jdk`, `17.0.15-al2-native-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/jdk/al2/Dockerfile) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`21-al2023`, `21.0.7-al2023`, `21-al2023-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/jdk/al2023/Dockerfile) + +- [`21-al2023-headless`, `21.0.7-al2023-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/headless/al2023/Dockerfile) + +- [`21-al2023-headful`, `21.0.7-al2023-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/headful/al2023/Dockerfile) + +- [`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) + +- [`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) + +- [`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) + +- [`24-al2023`, `24.0.1-al2023`, `24-al2023-jdk`, `24`, `24-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/24/jdk/al2023/Dockerfile) + +- [`24-al2023-headless`, `24.0.1-al2023-headless`, `24-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/24/headless/al2023/Dockerfile) + +- [`24-al2023-headful`, `24.0.1-al2023-headful`, `24-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/24/headful/al2023/Dockerfile) + +- [`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) + +- [`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) + +- [`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) # Quick reference (cont.) diff --git a/amazoncorretto/metadata.json b/amazoncorretto/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/amazoncorretto/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/amazonlinux/README.md b/amazonlinux/README.md index 74523a48d0a2..1789092dde3b 100644 --- a/amazonlinux/README.md +++ b/amazonlinux/README.md @@ -24,9 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`2023`, `latest`, `2023.2.20231026.0`](https://github.com/amazonlinux/container-images/blob/a91cdfe045001e6c564070f467a5ddc21bbaaad3/Dockerfile) -- [`2`, `2.0.20231101.0`](https://github.com/amazonlinux/container-images/blob/75d8ec841d42a12103774b888bf14a4b8bb7752b/Dockerfile) -- [`1`, `2018.03`, `2018.03.0.20231024.0`](https://github.com/amazonlinux/container-images/blob/2c8d2ccf663a8e07e8a87b7e98049c69956d05c7/Dockerfile) +- [`2023`, `latest`, `2023.7.20250609.0`](https://github.com/amazonlinux/container-images/blob/4d953066c54d4022977eb64aa0b6bcd82e350f2f/Dockerfile) + +- [`2`, `2.0.20250610.0`](https://github.com/amazonlinux/container-images/blob/890e843557c587dec993e9be443d9220e663580b/Dockerfile) + +- [`1`, `2018.03`, `2018.03.0.20231218.0`](https://github.com/amazonlinux/container-images/blob/cfb41ad1c7624786ea10f60c15ce9c117c4da3b6/Dockerfile) # Quick reference (cont.) @@ -73,7 +75,7 @@ Note that Docker Hub's vulnerability scanning for Amazon Linux is currently base ## What is Amazon Linux 2023? - Amazon Linux 2023: https://aws.amazon.com/linux/amazon-linux-2023/ -- 2023.0 Release Notes: https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html +- 2023 Release Notes: https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html - FAQs: https://aws.amazon.com/linux/amazon-linux-2023/faqs/ - What's New: https://aws.amazon.com/about-aws/whats-new/2023/03/amazon-linux-2023/ - User Guide: https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html diff --git a/amazonlinux/content.md b/amazonlinux/content.md index 317c0f205639..15b308c6242d 100644 --- a/amazonlinux/content.md +++ b/amazonlinux/content.md @@ -23,7 +23,7 @@ Note that Docker Hub's vulnerability scanning for Amazon Linux is currently base ## What is Amazon Linux 2023? - Amazon Linux 2023: https://aws.amazon.com/linux/amazon-linux-2023/ -- 2023.0 Release Notes: https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html +- 2023 Release Notes: https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html - FAQs: https://aws.amazon.com/linux/amazon-linux-2023/faqs/ - What's New: https://aws.amazon.com/about-aws/whats-new/2023/03/amazon-linux-2023/ - User Guide: https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html diff --git a/amazonlinux/metadata.json b/amazonlinux/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/amazonlinux/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/api-firewall/README.md b/api-firewall/README.md index e409a5dd5e54..4828d9dc2aef 100644 --- a/api-firewall/README.md +++ b/api-firewall/README.md @@ -24,8 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`0.6.13`, `latest`](https://github.com/wallarm/api-firewall-docker/blob/e91a3e1f2859e57cd9f4371ba2a2308a35f2b546/0.6.13/Dockerfile) -- [`0.6.12`](https://github.com/wallarm/api-firewall-docker/blob/e91a3e1f2859e57cd9f4371ba2a2308a35f2b546/0.6.12/Dockerfile) +- [`0.9.1`, `latest`](https://github.com/wallarm/api-firewall-docker/blob/c2776cc6a5adedddcdeb49e8613f64704ccb4c27/0.9.1/Dockerfile) # Quick reference (cont.) diff --git a/api-firewall/metadata.json b/api-firewall/metadata.json new file mode 100644 index 000000000000..538442b9d959 --- /dev/null +++ b/api-firewall/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "api-management" + ] + } +} diff --git a/arangodb/README.md b/arangodb/README.md index ed34e768d14a..a3fd8b4a815c 100644 --- a/arangodb/README.md +++ b/arangodb/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.10`, `3.10.11`](https://github.com/arangodb/arangodb-docker/blob/855faa5aa4d4e065c46e5d999af83c3a7cba5ccb/alpine/3.10.11/Dockerfile) -- [`3.11`, `3.11.5`, `latest`](https://github.com/arangodb/arangodb-docker/blob/dde13e51d1fc110c1349d75e4aee156af2adc8b2/alpine/3.11.5/Dockerfile) +- [`3.11`, `3.11.14`](https://github.com/arangodb/arangodb-docker/blob/8b486ff8c7b63e75c19f2bee37b756e9c0ba620f/alpine/3.11.14/Dockerfile) + +- [`3.12`, `3.12.4.3`, `latest`](https://github.com/arangodb/arangodb-docker/blob/351d27922fd2060deb86a76a26a99ff1bb2f3c12/alpine/3.12.4.3/Dockerfile) # Quick reference (cont.) @@ -66,8 +67,8 @@ ArangoDB runs everywhere: On-prem, in the cloud, and as a managed cloud service: #### ArangoDB Documentation -- [Learn ArangoDB](https://www.arangodb.com/learn/) -- [Documentation](https://www.arangodb.com/docs/) +- [Learn ArangoDB](https://arangodb.com/learn/) +- [Documentation](https://docs.arangodb.com/) ## How to use this image @@ -76,26 +77,44 @@ ArangoDB runs everywhere: On-prem, in the cloud, and as a managed cloud service: In order to start an ArangoDB instance, run: ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 -d --name arangodb-instance arangodb +docker run -d -p 8529:8529 -e ARANGO_RANDOM_ROOT_PASSWORD=1 --name arangodb-instance arangodb +``` + +Docker chooses the processor architecture for the image that matches your host CPU by default. If this is not the case, for example, because you have the `DOCKER_DEFAULT_PLATFORM` environment variable set to a different architecture, you can pass the `--platform` flag to the `docker run` command to specify the appropriate operating system and architecture for the container. For x86-64, use `linux/amd64`. On ARM, especially Apple silicon with no emulation for the required AVX instruction set extension, use `linux/arm64/v8`: + +```console +docker run -d -p 8529:8529 -e ARANGO_RANDOM_ROOT_PASSWORD=1 --name arangodb-instance --platform linux/arm64/v8 arangodb ``` -Will create and launch the arangodb docker instance as background process. The Identifier of the process is printed. By default ArangoDB listen on port 8529 for request and the image includes `EXPOSE 8529`. If you link an application container it is automatically available in the linked container. See the following examples. +This creates and launches the arangodb Docker instance as a background process. The Identifier of the process is printed. By default, ArangoDB listens on port `8529` for requests. -In order to get the IP arango listens on, run: +In order to get the IP ArangoDB listens on, run: ```console -unix> docker inspect --format '{{ .NetworkSettings.IPAddress }}' arangodb-instance +docker inspect --format '{{ .NetworkSettings.IPAddress }}' arangodb-instance ``` +### Initialize the server language + +When using Docker, you need to specify the language you want to initialize the server to on the first run in one of the following ways: + +- Set the environment variable `LANG` to a locale in the `docker run` command, e.g. `-e LANG=sv` for a Swedish locale. + +- Use an `arangod.conf` configuration file that sets a language and mount it into the container. For example, create a configuration file on your host system in which you set `icu-language = sv` at the top (before any `[section]`) and then mount the file over the default configuration file like `docker run -v /your-host-path/arangod.conf:/etc/arangodb3/arangod.conf ...`. + +Note that you cannot set the language using only a startup option on the command-line, like `docker run ... arangodb --icu-language sv`. + +If you don't specify a language explicitly, the default is `en_US` up to ArangoDB v3.11 and `en_US_POSIX` from ArangoDB v3.12 onward. + ### Using the instance -In order to use the running instance from an application, link the container: +To use the running instance from an application, link the container: ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 --name my-app --link arangodb-instance:db-link arangodb +docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 --name my-app --link arangodb-instance:db-link arangodb ``` -This will use the instance with the name `arangodb-instance` and link it into the application container. The application container will contain environment variables +This uses the instance named `arangodb-instance` and links it into the application container. The application container contains environment variables, which can be used to access the database. DB_LINK_PORT_8529_TCP=tcp://172.17.0.17:8529 DB_LINK_PORT_8529_TCP_ADDR=172.17.0.17 @@ -103,14 +122,12 @@ This will use the instance with the name `arangodb-instance` and link it into th DB_LINK_PORT_8529_TCP_PROTO=tcp DB_LINK_NAME=/naughty_ardinghelli/db-link -These can be used to access the database. - ### Exposing the port to the outside world If you want to expose the port to the outside world, run: ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 -p 8529:8529 -d arangodb +docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 -p 8529:8529 -d arangodb ``` ArangoDB listen on port 8529 for request and the image includes `EXPOSE @@ -141,7 +158,7 @@ Note: this way of specifying logins only applies to single server installations. You can pass arguments to the ArangoDB server by appending them to the end of the Docker command: ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 arangodb --help +docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 arangodb --help ``` The entrypoint script starts the `arangod` binary by default and forwards your arguments. @@ -149,13 +166,18 @@ The entrypoint script starts the `arangod` binary by default and forwards your a You may also start other binaries, such as the ArangoShell: ```console -unix> docker run -it arangodb arangosh --server.database myDB ... +docker run -it arangodb arangosh --server.database myDB ... ``` Note that you need to set up networking for containers if `arangod` runs in one container and you want to access it with `arangosh` running in another container. It is easier to execute it in the same container instead. Use `docker ps` to find out the container ID / name of a running container: ```console -unix> docker ps +docker ps +``` + +It prints something similar to the following: + +```console CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1234567890ab arangodb "/entrypoint.sh aran…" 2 hours ago Up 2 hours 0.0.0.0:8529->8529/tcp jolly_joker ``` @@ -163,10 +185,10 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS Then use `docker exec` and the ID / name to run something inside of the existing container: ```console -unix> docker exec -it jolly_joker arangosh +docker exec -it jolly_joker arangosh ``` -See more information about [Configuration](https://www.arangodb.com/docs/stable/administration-configuration.html) +For more information, see the ArangoDB documentation about [Configuration](https://docs.arangodb.com/stable/operations/administration/configuration/). ### Limiting resource utilization @@ -197,7 +219,7 @@ ArangoDB supports two different storage engines from version 3.2 to 3.6. You can ArangoDB uses the volume `/var/lib/arangodb3` as database directory to store the collection data and the volume `/var/lib/arangodb3-apps` as apps directory to store any extensions. These directories are marked as docker volumes. -See `docker inspect --format "{{ .Config.Volumes}}" arangodb` for all volumes. +See `docker inspect --format "{{ .Config.Volumes }}" arangodb` for all volumes. A good explanation about persistence and docker container can be found here: [Docker In-depth: Volumes](http://container42.com/2014/11/03/docker-indepth-volumes/), [Why Docker Data Containers are Good](https://medium.com/@ramangupta/why-docker-data-containers-are-good-589b3c6c749e) @@ -208,8 +230,8 @@ You can map the container's volumes to a directory on the host, so that the data ```console unix> mkdir /tmp/arangodb unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 -p 8529:8529 -d \ - -v /tmp/arangodb:/var/lib/arangodb3 \ - arangodb + -v /tmp/arangodb:/var/lib/arangodb3 \ + arangodb ``` This will use the `/tmp/arangodb` directory of the host as database directory for ArangoDB inside the container. @@ -219,34 +241,40 @@ This will use the `/tmp/arangodb` directory of the host as database directory fo Alternatively you can create a container holding the data. ```console -unix> docker create --name arangodb-persist arangodb true +docker create --name arangodb-persist arangodb true ``` And use this data container in your ArangoDB container. ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 --volumes-from arangodb-persist -p 8529:8529 arangodb +docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 --volumes-from arangodb-persist -p 8529:8529 arangodb ``` If want to save a few bytes you can alternatively use [busybox](https://hub.docker.com/_/busybox) or [alpine](https://hub.docker.com/_/alpine) for creating the volume only containers. Please note that you need to provide the used volumes in this case. For example ```console -unix> docker run -d --name arangodb-persist -v /var/lib/arangodb3 busybox true +docker run -d --name arangodb-persist -v /var/lib/arangodb3 busybox true ``` -### Using as a base image +### Usage as a base image -If you are using the image as a base image please make sure to wrap any CMD in the [exec](https://docs.docker.com/engine/reference/builder/#cmd) form. Otherwise the default entrypoint will not do its bootstrapping work. +If you are using the image as a base image please make sure to wrap any CMD in the [exec](https://docs.docker.com/reference/dockerfile/#cmd) form. Otherwise the default entrypoint will not do its bootstrapping work. When deriving the image, you can control the instantiation via putting files into `/docker-entrypoint-initdb.d/`. - `*.sh` - files ending with .sh will be run as a bash shellscript. - `*.js` - files will be executed with arangosh. You can specify additional arangosh arguments via the `ARANGOSH_ARGS` environment variable. -- `dumps/` - in this directory you can place subdirectories containing database dumps generated using [arangodump](https://www.arangodb.com/docs/stable/programs-arangodump.html). They can be restored using [arangorestore](https://www.arangodb.com/docs/stable/programs-arangorestore.html). +- `dumps/` - in this directory you can place subdirectories containing database dumps generated using [arangodump](https://docs.arangodb.com/stable/components/tools/arangodump/). They can be restored using [arangorestore](https://docs.arangodb.com/stable/components/tools/arangorestore/). # License -[ArangoDB itself is licensed under the Apache License](https://github.com/arangodb/arangodb/blob/devel/LICENSE), but it contains [software of third parties under their respective licenses](https://github.com/arangodb/arangodb/blob/devel/LICENSES-OTHER-COMPONENTS.md). +The official Docker images of the ArangoDB Community Edition are governed by the [ArangoDB Community License](https://arangodb.com/community-license/). It limits deployments to a 100 GB on dataset size in production and you cannot use it for any commercial purposes, only internal business purposes. + +The source code of the Community Edition is available under the [Business Source License 1.1 (BUSL-1.1)](https://github.com/arangodb/arangodb/blob/devel/LICENSE). Copying, modification, redistribution, non-commercial use, and commercial use in a non-production context are always allowed. Additionally, you can deploy BUSL-licensed ArangoDB source code for any purpose (including production) as long as you are not creating a commercial derivative work or offering, or are including it in a commercial product, application, or service. On the fourth anniversary of the first publicly available distribution of a specific version, the license changes to the permissive Apache 2.0 open-source license. + +Up to ArangoDB version 3.11, ArangoDB is licensed under the [Apache 2.0 License](https://github.com/arangodb/arangodb/blob/3.11/LICENSE). + +ArangoDB contains [software of third parties under their respective licenses](https://github.com/arangodb/arangodb/blob/devel/LICENSES-OTHER-COMPONENTS.md). 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). diff --git a/arangodb/content.md b/arangodb/content.md index 7eb489a897bf..159a5569c66f 100644 --- a/arangodb/content.md +++ b/arangodb/content.md @@ -18,8 +18,8 @@ ArangoDB runs everywhere: On-prem, in the cloud, and as a managed cloud service: #### ArangoDB Documentation -- [Learn ArangoDB](https://www.arangodb.com/learn/) -- [Documentation](https://www.arangodb.com/docs/) +- [Learn ArangoDB](https://arangodb.com/learn/) +- [Documentation](https://docs.arangodb.com/) ## How to use this image @@ -28,26 +28,44 @@ ArangoDB runs everywhere: On-prem, in the cloud, and as a managed cloud service: In order to start an ArangoDB instance, run: ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 -d --name arangodb-instance %%IMAGE%% +docker run -d -p 8529:8529 -e ARANGO_RANDOM_ROOT_PASSWORD=1 --name arangodb-instance %%IMAGE%% ``` -Will create and launch the %%IMAGE%% docker instance as background process. The Identifier of the process is printed. By default ArangoDB listen on port 8529 for request and the image includes `EXPOSE 8529`. If you link an application container it is automatically available in the linked container. See the following examples. +Docker chooses the processor architecture for the image that matches your host CPU by default. If this is not the case, for example, because you have the `DOCKER_DEFAULT_PLATFORM` environment variable set to a different architecture, you can pass the `--platform` flag to the `docker run` command to specify the appropriate operating system and architecture for the container. For x86-64, use `linux/amd64`. On ARM, especially Apple silicon with no emulation for the required AVX instruction set extension, use `linux/arm64/v8`: -In order to get the IP arango listens on, run: +```console +docker run -d -p 8529:8529 -e ARANGO_RANDOM_ROOT_PASSWORD=1 --name arangodb-instance --platform linux/arm64/v8 %%IMAGE%% +``` + +This creates and launches the %%IMAGE%% Docker instance as a background process. The Identifier of the process is printed. By default, ArangoDB listens on port `8529` for requests. + +In order to get the IP ArangoDB listens on, run: ```console -unix> docker inspect --format '{{ .NetworkSettings.IPAddress }}' arangodb-instance +docker inspect --format '{{ .NetworkSettings.IPAddress }}' arangodb-instance ``` +### Initialize the server language + +When using Docker, you need to specify the language you want to initialize the server to on the first run in one of the following ways: + +- Set the environment variable `LANG` to a locale in the `docker run` command, e.g. `-e LANG=sv` for a Swedish locale. + +- Use an `arangod.conf` configuration file that sets a language and mount it into the container. For example, create a configuration file on your host system in which you set `icu-language = sv` at the top (before any `[section]`) and then mount the file over the default configuration file like `docker run -v /your-host-path/arangod.conf:/etc/arangodb3/arangod.conf ...`. + +Note that you cannot set the language using only a startup option on the command-line, like `docker run ... %%IMAGE%% --icu-language sv`. + +If you don't specify a language explicitly, the default is `en_US` up to ArangoDB v3.11 and `en_US_POSIX` from ArangoDB v3.12 onward. + ### Using the instance -In order to use the running instance from an application, link the container: +To use the running instance from an application, link the container: ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 --name my-app --link arangodb-instance:db-link %%IMAGE%% +docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 --name my-app --link arangodb-instance:db-link %%IMAGE%% ``` -This will use the instance with the name `arangodb-instance` and link it into the application container. The application container will contain environment variables +This uses the instance named `arangodb-instance` and links it into the application container. The application container contains environment variables, which can be used to access the database. DB_LINK_PORT_8529_TCP=tcp://172.17.0.17:8529 DB_LINK_PORT_8529_TCP_ADDR=172.17.0.17 @@ -55,14 +73,12 @@ This will use the instance with the name `arangodb-instance` and link it into th DB_LINK_PORT_8529_TCP_PROTO=tcp DB_LINK_NAME=/naughty_ardinghelli/db-link -These can be used to access the database. - ### Exposing the port to the outside world If you want to expose the port to the outside world, run: ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 -p 8529:8529 -d %%IMAGE%% +docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 -p 8529:8529 -d %%IMAGE%% ``` ArangoDB listen on port 8529 for request and the image includes `EXPOSE @@ -93,7 +109,7 @@ Note: this way of specifying logins only applies to single server installations. You can pass arguments to the ArangoDB server by appending them to the end of the Docker command: ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 %%IMAGE%% --help +docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 %%IMAGE%% --help ``` The entrypoint script starts the `arangod` binary by default and forwards your arguments. @@ -101,13 +117,18 @@ The entrypoint script starts the `arangod` binary by default and forwards your a You may also start other binaries, such as the ArangoShell: ```console -unix> docker run -it %%IMAGE%% arangosh --server.database myDB ... +docker run -it %%IMAGE%% arangosh --server.database myDB ... ``` Note that you need to set up networking for containers if `arangod` runs in one container and you want to access it with `arangosh` running in another container. It is easier to execute it in the same container instead. Use `docker ps` to find out the container ID / name of a running container: ```console -unix> docker ps +docker ps +``` + +It prints something similar to the following: + +```console CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1234567890ab arangodb "/entrypoint.sh aran…" 2 hours ago Up 2 hours 0.0.0.0:8529->8529/tcp jolly_joker ``` @@ -115,10 +136,10 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS Then use `docker exec` and the ID / name to run something inside of the existing container: ```console -unix> docker exec -it jolly_joker arangosh +docker exec -it jolly_joker arangosh ``` -See more information about [Configuration](https://www.arangodb.com/docs/stable/administration-configuration.html) +For more information, see the ArangoDB documentation about [Configuration](https://docs.arangodb.com/stable/operations/administration/configuration/). ### Limiting resource utilization @@ -149,7 +170,7 @@ ArangoDB supports two different storage engines from version 3.2 to 3.6. You can ArangoDB uses the volume `/var/lib/arangodb3` as database directory to store the collection data and the volume `/var/lib/arangodb3-apps` as apps directory to store any extensions. These directories are marked as docker volumes. -See `docker inspect --format "{{ .Config.Volumes}}" arangodb` for all volumes. +See `docker inspect --format "{{ .Config.Volumes }}" %%IMAGE%%` for all volumes. A good explanation about persistence and docker container can be found here: [Docker In-depth: Volumes](http://container42.com/2014/11/03/docker-indepth-volumes/), [Why Docker Data Containers are Good](https://medium.com/@ramangupta/why-docker-data-containers-are-good-589b3c6c749e) @@ -160,8 +181,8 @@ You can map the container's volumes to a directory on the host, so that the data ```console unix> mkdir /tmp/arangodb unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 -p 8529:8529 -d \ - -v /tmp/arangodb:/var/lib/arangodb3 \ - %%IMAGE%% + -v /tmp/arangodb:/var/lib/arangodb3 \ + %%IMAGE%% ``` This will use the `/tmp/arangodb` directory of the host as database directory for ArangoDB inside the container. @@ -171,27 +192,27 @@ This will use the `/tmp/arangodb` directory of the host as database directory fo Alternatively you can create a container holding the data. ```console -unix> docker create --name arangodb-persist %%IMAGE%% true +docker create --name arangodb-persist %%IMAGE%% true ``` And use this data container in your ArangoDB container. ```console -unix> docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 --volumes-from arangodb-persist -p 8529:8529 %%IMAGE%% +docker run -e ARANGO_RANDOM_ROOT_PASSWORD=1 --volumes-from arangodb-persist -p 8529:8529 %%IMAGE%% ``` If want to save a few bytes you can alternatively use [busybox](https://hub.docker.com/_/busybox) or [alpine](https://hub.docker.com/_/alpine) for creating the volume only containers. Please note that you need to provide the used volumes in this case. For example ```console -unix> docker run -d --name arangodb-persist -v /var/lib/arangodb3 busybox true +docker run -d --name arangodb-persist -v /var/lib/arangodb3 busybox true ``` -### Using as a base image +### Usage as a base image -If you are using the image as a base image please make sure to wrap any CMD in the [exec](https://docs.docker.com/engine/reference/builder/#cmd) form. Otherwise the default entrypoint will not do its bootstrapping work. +If you are using the image as a base image please make sure to wrap any CMD in the [exec](https://docs.docker.com/reference/dockerfile/#cmd) form. Otherwise the default entrypoint will not do its bootstrapping work. When deriving the image, you can control the instantiation via putting files into `/docker-entrypoint-initdb.d/`. - `*.sh` - files ending with .sh will be run as a bash shellscript. - `*.js` - files will be executed with arangosh. You can specify additional arangosh arguments via the `ARANGOSH_ARGS` environment variable. -- `dumps/` - in this directory you can place subdirectories containing database dumps generated using [arangodump](https://www.arangodb.com/docs/stable/programs-arangodump.html). They can be restored using [arangorestore](https://www.arangodb.com/docs/stable/programs-arangorestore.html). +- `dumps/` - in this directory you can place subdirectories containing database dumps generated using [arangodump](https://docs.arangodb.com/stable/components/tools/arangodump/). They can be restored using [arangorestore](https://docs.arangodb.com/stable/components/tools/arangorestore/). diff --git a/arangodb/license.md b/arangodb/license.md index 50e704672fa9..0bd79adbca15 100644 --- a/arangodb/license.md +++ b/arangodb/license.md @@ -1 +1,7 @@ -[ArangoDB itself is licensed under the Apache License](https://github.com/arangodb/arangodb/blob/devel/LICENSE), but it contains [software of third parties under their respective licenses](https://github.com/arangodb/arangodb/blob/devel/LICENSES-OTHER-COMPONENTS.md). +The official Docker images of the ArangoDB Community Edition are governed by the [ArangoDB Community License](https://arangodb.com/community-license/). It limits deployments to a 100 GB on dataset size in production and you cannot use it for any commercial purposes, only internal business purposes. + +The source code of the Community Edition is available under the [Business Source License 1.1 (BUSL-1.1)](https://github.com/arangodb/arangodb/blob/devel/LICENSE). Copying, modification, redistribution, non-commercial use, and commercial use in a non-production context are always allowed. Additionally, you can deploy BUSL-licensed ArangoDB source code for any purpose (including production) as long as you are not creating a commercial derivative work or offering, or are including it in a commercial product, application, or service. On the fourth anniversary of the first publicly available distribution of a specific version, the license changes to the permissive Apache 2.0 open-source license. + +Up to ArangoDB version 3.11, ArangoDB is licensed under the [Apache 2.0 License](https://github.com/arangodb/arangodb/blob/3.11/LICENSE). + +ArangoDB contains [software of third parties under their respective licenses](https://github.com/arangodb/arangodb/blob/devel/LICENSES-OTHER-COMPONENTS.md). diff --git a/arangodb/metadata.json b/arangodb/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/arangodb/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/archlinux/README.md b/archlinux/README.md index 34e92c100a10..c72b8eb0d01f 100644 --- a/archlinux/README.md +++ b/archlinux/README.md @@ -24,8 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`latest`, `base`, `base-20231112.0.191179`](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/9e3e5066b444021f47836449f6a9d89d0cf5861a/Dockerfile.base) -- [`base-devel`, `base-devel-20231112.0.191179`](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/9e3e5066b444021f47836449f6a9d89d0cf5861a/Dockerfile.base-devel) +- [`latest`, `base`, `base-20250615.0.365905`](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/32394b3e1408dc4b6da04e3fb655160707e1db93/Dockerfile.base) + +- [`base-devel`, `base-devel-20250615.0.365905`](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/32394b3e1408dc4b6da04e3fb655160707e1db93/Dockerfile.base-devel) + +- [`multilib-devel`, `multilib-devel-20250615.0.365905`](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/32394b3e1408dc4b6da04e3fb655160707e1db93/Dockerfile.multilib-devel) # Quick reference (cont.) @@ -58,18 +61,18 @@ Our strong community is diverse and helpful, and we pride ourselves on the range # About this image -The root filesystem tarball for this image is auto-generated weekly at 00:00 UTC on Sunday in Arch Linux infrastructure. Given the rolling-release nature of Arch Linux, images are tagged with the included package group / meta package and the timestamp of the date they were generated. For example, `archlinux:base-20201101.0.7893` was generated the First of November 2020 in [CI job #7893](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/jobs/7893). The `latest` tag will always match the latest `base` tag. +The root filesystem tarball for this image is auto-generated weekly at 00:00 UTC on Sunday in Arch Linux infrastructure. Given the rolling-release nature of Arch Linux, images are tagged with the included meta package and the timestamp of the date they were generated. For example, `archlinux:base-20201101.0.7893` was generated the First of November 2020 in [CI job #7893](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/jobs/7893). The `latest` tag will always match the latest `base` tag. -Besides `base` we also provide images for the `base-devel` package group. +Besides `base` we also provide images for the `base-devel` and `multilib-devel` meta packages. This image is intended to serve the following goals: - Provide the Arch experience in a Docker Image -- Provide simplest but complete image to base every other upon +- Provide simplest but complete image to `base`, `base-devel` and `multilib-devel` on a regular basis - `pacman` needs to work out of the box - All installed packages have to be kept unmodified -> ⚠️⚠️⚠️ NOTE: For Security Reasons, these images strip the pacman lsign key. This is because the same key would be spread to all containers of the same image, allowing for malicious actors to inject packages (via, for example, a man-in-the-middle). In order to create an lsign-key run `pacman-key --init` on the first execution, but be careful to not redistribute that key. ⚠️⚠️⚠️ +> ⚠️⚠️⚠️ NOTE: For Security Reasons, these images strip the pacman lsign key. This is because the same key would be spread to all containers of the same image, allowing for malicious actors to inject packages (via, for example, a man-in-the-middle). In order to create a lsign-key run `pacman-key --init` on the first execution, but be careful to not redistribute that key. ⚠️⚠️⚠️ ## Availability diff --git a/archlinux/content.md b/archlinux/content.md index 0e66b1fea0f4..edac8163de00 100644 --- a/archlinux/content.md +++ b/archlinux/content.md @@ -10,18 +10,18 @@ Our strong community is diverse and helpful, and we pride ourselves on the range # About this image -The root filesystem tarball for this image is auto-generated weekly at 00:00 UTC on Sunday in Arch Linux infrastructure. Given the rolling-release nature of Arch Linux, images are tagged with the included package group / meta package and the timestamp of the date they were generated. For example, `%%IMAGE%%:base-20201101.0.7893` was generated the First of November 2020 in [CI job #7893](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/jobs/7893). The `latest` tag will always match the latest `base` tag. +The root filesystem tarball for this image is auto-generated weekly at 00:00 UTC on Sunday in Arch Linux infrastructure. Given the rolling-release nature of Arch Linux, images are tagged with the included meta package and the timestamp of the date they were generated. For example, `%%IMAGE%%:base-20201101.0.7893` was generated the First of November 2020 in [CI job #7893](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/jobs/7893). The `latest` tag will always match the latest `base` tag. -Besides `base` we also provide images for the `base-devel` package group. +Besides `base` we also provide images for the `base-devel` and `multilib-devel` meta packages. This image is intended to serve the following goals: - Provide the Arch experience in a Docker Image -- Provide simplest but complete image to base every other upon +- Provide simplest but complete image to `base`, `base-devel` and `multilib-devel` on a regular basis - `pacman` needs to work out of the box - All installed packages have to be kept unmodified -> ⚠️⚠️⚠️ NOTE: For Security Reasons, these images strip the pacman lsign key. This is because the same key would be spread to all containers of the same image, allowing for malicious actors to inject packages (via, for example, a man-in-the-middle). In order to create an lsign-key run `pacman-key --init` on the first execution, but be careful to not redistribute that key. ⚠️⚠️⚠️ +> ⚠️⚠️⚠️ NOTE: For Security Reasons, these images strip the pacman lsign key. This is because the same key would be spread to all containers of the same image, allowing for malicious actors to inject packages (via, for example, a man-in-the-middle). In order to create a lsign-key run `pacman-key --init` on the first execution, but be careful to not redistribute that key. ⚠️⚠️⚠️ ## Availability diff --git a/archlinux/metadata.json b/archlinux/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/archlinux/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/backdrop/README.md b/backdrop/README.md index db146f49a35b..4821ee51609b 100644 --- a/backdrop/README.md +++ b/backdrop/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.26.1`, `1.26`, `1`, `1.26.1-apache`, `1.26-apache`, `1-apache`, `apache`, `latest`](https://github.com/backdrop-ops/backdrop-docker/blob/95902d6610b2474ca88ff8faae40ed30e7d3318a/1/apache/Dockerfile) -- [`1.26.1-fpm`, `1.26-fpm`, `1-fpm`, `fpm`](https://github.com/backdrop-ops/backdrop-docker/blob/95902d6610b2474ca88ff8faae40ed30e7d3318a/1/fpm/Dockerfile) +- [`1.31.0`, `1.31`, `1`, `1.31.0-apache`, `1.31-apache`, `1-apache`, `apache`, `latest`](https://github.com/backdrop-ops/backdrop-docker/blob/82f5f08f12c2e861cde61b7b4dac8ebd76f3ee1f/1/apache/Dockerfile) + +- [`1.31.0-fpm`, `1.31-fpm`, `1-fpm`, `fpm`](https://github.com/backdrop-ops/backdrop-docker/blob/82f5f08f12c2e861cde61b7b4dac8ebd76f3ee1f/1/fpm/Dockerfile) # Quick reference (cont.) @@ -92,28 +93,29 @@ $ docker run --name some-backdrop \ -d backdrop ``` -## ... via [`docker-compose`](https://github.com/docker/compose) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `backdrop`: +Example `compose.yaml` for `backdrop`: ```yaml -backdrop: - image: backdrop - links: - - db:mysql - ports: - - 8080:80 - -db: - image: mysql - environment: - MYSQL_USER: backdrop - MYSQL_PASSWORD: backdrop - MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' - MYSQL_DATABASE: backdrop +services: + backdrop: + image: backdrop + links: + - db:mysql + ports: + - 8080:80 + + db: + image: mysql + environment: + MYSQL_USER: backdrop + MYSQL_PASSWORD: backdrop + MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' + MYSQL_DATABASE: backdrop ``` -Run `docker-compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080`. +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080`. ## Adding additional libraries / extensions diff --git a/backdrop/compose.yaml b/backdrop/compose.yaml new file mode 100644 index 000000000000..38ef8693cafe --- /dev/null +++ b/backdrop/compose.yaml @@ -0,0 +1,15 @@ +services: + backdrop: + image: backdrop + links: + - db:mysql + ports: + - 8080:80 + + db: + image: mysql + environment: + MYSQL_USER: backdrop + MYSQL_PASSWORD: backdrop + MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' + MYSQL_DATABASE: backdrop diff --git a/backdrop/content.md b/backdrop/content.md index 9de55cd372fb..68cf928fa8a1 100644 --- a/backdrop/content.md +++ b/backdrop/content.md @@ -44,28 +44,9 @@ $ docker run --name some-%%REPO%% \ -d %%REPO%% ``` -## ... via [`docker-compose`](https://github.com/docker/compose) - -Example `docker-compose.yml` for `%%REPO%%`: - -```yaml -%%REPO%%: - image: %%REPO%% - links: - - db:mysql - ports: - - 8080:80 - -db: - image: mysql - environment: - MYSQL_USER: %%REPO%% - MYSQL_PASSWORD: %%REPO%% - MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' - MYSQL_DATABASE: %%REPO%% -``` +## %%COMPOSE%% -Run `docker-compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080`. +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080`. ## Adding additional libraries / extensions diff --git a/backdrop/metadata.json b/backdrop/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/backdrop/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/bash/README.md b/bash/README.md index 3ad89ab475b6..de73fe3225ad 100644 --- a/bash/README.md +++ b/bash/README.md @@ -24,18 +24,31 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`devel-20231106`, `devel`, `devel-20231106-alpine3.18`, `devel-alpine3.18`](https://github.com/tianon/docker-bash/blob/bd68c713fb88af7365d921de614c2783766540e8/devel/Dockerfile) -- [`5.2.21`, `5.2`, `5`, `latest`, `5.2.21-alpine3.18`, `5.2-alpine3.18`, `5-alpine3.18`, `alpine3.18`](https://github.com/tianon/docker-bash/blob/ba6a6be33e2bc2b6f045963607650e54a83a974b/5.2/Dockerfile) -- [`5.1.16`, `5.1`, `5.1.16-alpine3.18`, `5.1-alpine3.18`](https://github.com/tianon/docker-bash/blob/24c782c1b77287b0cea03a00ba43498276bf8182/5.1/Dockerfile) -- [`5.0.18`, `5.0`, `5.0.18-alpine3.18`, `5.0-alpine3.18`](https://github.com/tianon/docker-bash/blob/eb30d9e65ce00810fcc7e984f5a7d554433aaa34/5.0/Dockerfile) -- [`4.4.23`, `4.4`, `4`, `4.4.23-alpine3.18`, `4.4-alpine3.18`, `4-alpine3.18`](https://github.com/tianon/docker-bash/blob/a4249001da00598147e31c6dae1d2f873ea133d6/4.4/Dockerfile) -- [`4.3.48`, `4.3`, `4.3.48-alpine3.18`, `4.3-alpine3.18`](https://github.com/tianon/docker-bash/blob/9d96b3dd25eb51833e9436102282379a6926d4e1/4.3/Dockerfile) -- [`4.2.53`, `4.2`, `4.2.53-alpine3.18`, `4.2-alpine3.18`](https://github.com/tianon/docker-bash/blob/26bc148c4296705a6b7b66591d9de286331db0e3/4.2/Dockerfile) -- [`4.1.17`, `4.1`, `4.1.17-alpine3.18`, `4.1-alpine3.18`](https://github.com/tianon/docker-bash/blob/fb857333ccbaaa26a237578d18b76aade04ff83b/4.1/Dockerfile) -- [`4.0.44`, `4.0`, `4.0.44-alpine3.18`, `4.0-alpine3.18`](https://github.com/tianon/docker-bash/blob/ee076229de93378de38a2b8e408345e5f5f28ddc/4.0/Dockerfile) -- [`3.2.57`, `3.2`, `3`, `3.2.57-alpine3.18`, `3.2-alpine3.18`, `3-alpine3.18`](https://github.com/tianon/docker-bash/blob/0d587a69276bb18347f735f26300099a95b8c330/3.2/Dockerfile) -- [`3.1.23`, `3.1`, `3.1.23-alpine3.18`, `3.1-alpine3.18`](https://github.com/tianon/docker-bash/blob/b83109dc6ccacd01778fd2377f57ada886f0541a/3.1/Dockerfile) -- [`3.0.22`, `3.0`, `3.0.22-alpine3.18`, `3.0-alpine3.18`](https://github.com/tianon/docker-bash/blob/2642c1a5b7d148d3486b739b68724bd0d234902c/3.0/Dockerfile) +- [`devel-20250616`, `devel`, `devel-20250616-alpine3.22`, `devel-alpine3.22`](https://github.com/tianon/docker-bash/blob/80b590f06d5f8da2c8d36549d7b760e7a2c988a7/devel/Dockerfile) + +- [`5.3-rc2`, `5.3-rc`, `rc`, `5.3-rc2-alpine3.22`, `5.3-rc-alpine3.22`, `rc-alpine3.22`](https://github.com/tianon/docker-bash/blob/b8c645d094186ccdca78c724ed020a27588b253b/5.3-rc/Dockerfile) + +- [`5.2.37`, `5.2`, `5`, `latest`, `5.2.37-alpine3.22`, `5.2-alpine3.22`, `5-alpine3.22`, `alpine3.22`](https://github.com/tianon/docker-bash/blob/9fc164bd1a8e4bfe16c517623ce935dc821bbb08/5.2/Dockerfile) + +- [`5.1.16`, `5.1`, `5.1.16-alpine3.22`, `5.1-alpine3.22`](https://github.com/tianon/docker-bash/blob/8ba8423bc0d3339722d4ba2d1af1f53fd179f506/5.1/Dockerfile) + +- [`5.0.18`, `5.0`, `5.0.18-alpine3.22`, `5.0-alpine3.22`](https://github.com/tianon/docker-bash/blob/5f58d08f8ee4a558b8302ef22352af99d4beedfd/5.0/Dockerfile) + +- [`4.4.23`, `4.4`, `4`, `4.4.23-alpine3.22`, `4.4-alpine3.22`, `4-alpine3.22`](https://github.com/tianon/docker-bash/blob/7deed0d5c668469ae5eaf56e2a6c925f9a6a48d0/4.4/Dockerfile) + +- [`4.3.48`, `4.3`, `4.3.48-alpine3.22`, `4.3-alpine3.22`](https://github.com/tianon/docker-bash/blob/c3cc929583554a6797eeedf1143461fb6934d41c/4.3/Dockerfile) + +- [`4.2.53`, `4.2`, `4.2.53-alpine3.22`, `4.2-alpine3.22`](https://github.com/tianon/docker-bash/blob/84117f18511a843e2587b998901b9e8f84863141/4.2/Dockerfile) + +- [`4.1.17`, `4.1`, `4.1.17-alpine3.22`, `4.1-alpine3.22`](https://github.com/tianon/docker-bash/blob/454c634ceb497bb3dd70cceffc18219af82094fc/4.1/Dockerfile) + +- [`4.0.44`, `4.0`, `4.0.44-alpine3.22`, `4.0-alpine3.22`](https://github.com/tianon/docker-bash/blob/cf3478db7e68c12b2bf73225cb86d33d9067b01d/4.0/Dockerfile) + +- [`3.2.57`, `3.2`, `3`, `3.2.57-alpine3.22`, `3.2-alpine3.22`, `3-alpine3.22`](https://github.com/tianon/docker-bash/blob/8d2e78e9fb10d94ab82f2c96ed5453116b60b266/3.2/Dockerfile) + +- [`3.1.23`, `3.1`, `3.1.23-alpine3.22`, `3.1-alpine3.22`](https://github.com/tianon/docker-bash/blob/0b88b446dde99f282604a9d4feee4ee4328012fb/3.1/Dockerfile) + +- [`3.0.22`, `3.0`, `3.0.22-alpine3.22`, `3.0-alpine3.22`](https://github.com/tianon/docker-bash/blob/aa72817e8ccfc175d51acc2bcadae64684e06879/3.0/Dockerfile) # Quick reference (cont.) @@ -43,7 +56,7 @@ WARNING: [https://github.com/tianon/docker-bash/issues](https://github.com/tianon/docker-bash/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/bash/), [`arm32v6`](https://hub.docker.com/r/arm32v6/bash/), [`arm32v7`](https://hub.docker.com/r/arm32v7/bash/), [`arm64v8`](https://hub.docker.com/r/arm64v8/bash/), [`i386`](https://hub.docker.com/r/i386/bash/), [`ppc64le`](https://hub.docker.com/r/ppc64le/bash/), [`s390x`](https://hub.docker.com/r/s390x/bash/) + [`amd64`](https://hub.docker.com/r/amd64/bash/), [`arm32v6`](https://hub.docker.com/r/arm32v6/bash/), [`arm32v7`](https://hub.docker.com/r/arm32v7/bash/), [`arm64v8`](https://hub.docker.com/r/arm64v8/bash/), [`i386`](https://hub.docker.com/r/i386/bash/), [`ppc64le`](https://hub.docker.com/r/ppc64le/bash/), [`riscv64`](https://hub.docker.com/r/riscv64/bash/), [`s390x`](https://hub.docker.com/r/s390x/bash/) - **Published image artifact details**: [repo-info repo's `repos/bash/` directory](https://github.com/docker-library/repo-info/blob/master/repos/bash) ([history](https://github.com/docker-library/repo-info/commits/master/repos/bash)) diff --git a/bash/metadata.json b/bash/metadata.json new file mode 100644 index 000000000000..67e782480585 --- /dev/null +++ b/bash/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "developer-tools" + ] + } +} diff --git a/bonita/README.md b/bonita/README.md index d5a813552939..4e09d8d33979 100644 --- a/bonita/README.md +++ b/bonita/README.md @@ -24,10 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`2022.1-u0`, `2022.1`, `7.14.0`, `7.14`](https://github.com/bonitasoft/bonita-distrib/blob/4cdeb1c385b981e7074ce19cc685c08028d7149d/docker/Dockerfile) -- [`2022.2-u0`, `2022.2`, `7.15.0`, `7.15`](https://github.com/bonitasoft/bonita-distrib/blob/607a6a3885df35979e0946611af4f7c858f9c989/docker/Dockerfile) -- [`2023.1-u0`, `2023.1`, `8.0.0`, `8.0`](https://github.com/bonitasoft/bonita-distrib/blob/814cc8cc0a6e8b02c827cb1dfeabb1bb4569a865/docker/Dockerfile) -- [`2023.2-u0`, `2023.2`, `9.0.0`, `9.0`, `latest`](https://github.com/bonitasoft/bonita-distrib/blob/a8f0abf47fa8f7b96cb010e7d80b032ae96720ca/docker/Dockerfile) +- [`2022.2-u0`, `2022.2`, `7.15.0`, `7.15`](https://github.com/bonitasoft/bonita-distrib/blob/0fbc47d8fcb6629b943b4c1e00052ca14c3d1e1b/docker/Dockerfile) + +- [`2023.1-u0`, `2023.1`, `8.0.0`, `8.0`](https://github.com/bonitasoft/bonita-distrib/blob/31dcebbf22ebcce11f8e3a9b9444802136c36c03/docker/Dockerfile) + +- [`2023.2-u0`, `2023.2`, `9.0.0`, `9.0`](https://github.com/bonitasoft/bonita-distrib/blob/397824cf4f302c37f3534908728a2b8321a31565/docker/Dockerfile) + +- [`2024.3-u0`, `2024.3`, `10.2.0`, `10.2`, `latest`](https://github.com/bonitasoft/bonita-distrib/blob/634a6e462dbcc7da8ec7ed47adf419b9a24bf744/docker/Dockerfile) # Quick reference (cont.) @@ -81,29 +84,26 @@ From Bonita 2022.1 onwards, the Bonita docker image does not include configurati 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: ```bash -docker run --name mydbpostgres -h -d bonitasoft/bonita-postgres:12.6 +docker run --name mydbpostgres -h -d bonitasoft/bonita-postgres:16.4 ``` -This image is built from the following [GitHub repository](https://github.com/Bonitasoft-Community/bonita-database-docker/tree/main/postgres/12), which can be further adapted/customized to suit your needs. +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. -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `bonita`: +Example `compose.yaml` for `bonita`: ```yaml -version: '3' - services: db: - image: bonitasoft/bonita-postgres:12.6 + image: bonitasoft/bonita-postgres:16.4 + ports: + - 5432:5432 environment: POSTGRES_PASSWORD: example restart: always - command: - - -c - - max_prepared_transactions=100 bonita: - image: bonita:7.14.0 + image: bonita:2024.3 hostname: custom-hostname.example.com ports: - 8080:8080 @@ -117,34 +117,17 @@ services: - BIZ_DB_NAME=business_data - BIZ_DB_USER=business_data - BIZ_DB_PASS=bpm - - TENANT_LOGIN=tech_user - - TENANT_PASSWORD=secret + - BONITA_RUNTIME_ADMIN_USERNAME=tech_user + - BONITA_RUNTIME_ADMIN_PASSWORD=secret - PLATFORM_LOGIN=pfadmin - PLATFORM_PASSWORD=pfsecret restart: on-failure:2 depends_on: - - db - entrypoint: - - bash - - -c - - | - set -e - echo 'Waiting for PostgreSQL to be available' - maxTries=10 - while [ "$$maxTries" -gt 0 ] && [ $$(echo 'QUIT' | nc -w 1 "$$DB_HOST" 5432; echo "$$?") -gt 0 ]; do - sleep 1 - let maxTries-- - done - if [ "$$maxTries" -le 0 ]; then - echo >&2 'error: unable to contact Postgres after 10 tries' - exit 1 - fi - exec /opt/files/startup.sh /opt/bonita/server/bin/catalina.sh run + db: + condition: service_healthy ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/d14f7b96a6cdcb815f50ba4244bf799f6127770f/bonita/stack.yml) - -Run `docker stack deploy -c stack.yml bonita` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). - Replace `` with the one used in the licence generation command - leave double `$$` untouched @@ -172,7 +155,7 @@ docker run --name=bonita -h --env-file=env.txt -d -p 8080:8080 bonita ## Start Bonita with custom security credentials ```bash -docker run --name=bonita -h -e "TENANT_LOGIN=tech_user" -e "TENANT_PASSWORD=secret" -e "PLATFORM_LOGIN=pfadmin" -e "PLATFORM_PASSWORD=pfsecret" -d -p 8080:8080 bonita +docker run --name=bonita -h -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 ``` Now you can access the Bonita Runtime on localhost:8080/bonita and login using: tech_user / secret @@ -198,11 +181,11 @@ This optional environment variable is used in conjunction with PLATFORM_PASSWORD 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. -### TENANT_LOGIN +### BONITA_RUNTIME_ADMIN_USERNAME -This optional environment variable is used in conjunction with TENANT_PASSWORD to define the username for the tenant administrator. If it is not specified, the default username `install` will be used. +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. -### TENANT_PASSWORD +### BONITA_RUNTIME_ADMIN_PASSWORD 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. @@ -296,7 +279,7 @@ These variables are used in conjunction to define how Bonita should access the [ The logger can be configured by mounting a volume on folder `/opt/bonita/conf/logs` containing the configuration files. -the volume must contain the 2 files [log4j2-loggers.xml](https://raw.githubusercontent.com/bonitasoft/bonita-distrib/7.14.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/7.14.0/docker/files/log4j2/log4j2-appenders.xml) +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) Any change made to one of this 2 files is automatically hot-reloaded and taken into account immediately. @@ -318,7 +301,7 @@ $ docker run -e HTTP_API=true -e HTTP_API_PASSWORD="My-Cust0m_S3cR3T" --name bo ## Update from an earlier version of Bonita -For updating from a version before 7.10.0, please refer to the [documentation](https://documentation.bonitasoft.com/bonita/latest/version-update/migrate-from-an-earlier-version-of-bonita) +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) - Stop the container to perform a database backup @@ -352,17 +335,16 @@ For updating from a version before 7.10.0, please refer to the [documentation](h $ cat /tmp/bonitadb.sql | psql -U newbonitauser -h 172.17.0.26 newbonitadb ``` -- Retrieve the last update tool +- Retrieve the last update tool archive from https://www.bonitasoft.com/downloads ```console - wget https://github.com/bonitasoft/bonita-platform-releases/releases/download/2023.2-u0/bonita-update-tool-3.3.0.zip - unzip bonita-update-tool-3.3.0.zip + unzip bonita-update-tool-3.6.0.zip ``` - Configure the update tool ```console - $ cd bonita-update-tool-3.3.0 + $ cd bonita-update-tool-3.6.0 ``` edit the update tool configuration file `Config.properties` to point towards the database. @@ -391,7 +373,7 @@ For updating from a version before 7.10.0, please refer to the [documentation](h - Launch the new container pointing towards the copy of the database. ```console - $ docker run --name=bonita --link mydbpostgres:postgres -e "DB_NAME=newbonitadb" -e "DB_USER=newbonitauser" -e "DB_PASS=newbonitapass" -d -p 8081:8080 bonita:2023.2-u0 + $ 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 ``` 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). diff --git a/bonita/compose.yaml b/bonita/compose.yaml new file mode 100644 index 000000000000..80eab9893445 --- /dev/null +++ b/bonita/compose.yaml @@ -0,0 +1,31 @@ +services: + db: + image: bonitasoft/bonita-postgres:16.4 + ports: + - 5432:5432 + environment: + POSTGRES_PASSWORD: example + restart: always + bonita: + image: bonita:2024.3 + hostname: custom-hostname.example.com + ports: + - 8080:8080 + environment: + - DB_VENDOR=postgres + - DB_HOST=db + - DB_PORT=5432 + - DB_NAME=bonita + - DB_USER=bonita + - DB_PASS=bpm + - BIZ_DB_NAME=business_data + - BIZ_DB_USER=business_data + - BIZ_DB_PASS=bpm + - BONITA_RUNTIME_ADMIN_USERNAME=tech_user + - BONITA_RUNTIME_ADMIN_PASSWORD=secret + - PLATFORM_LOGIN=pfadmin + - PLATFORM_PASSWORD=pfsecret + restart: on-failure:2 + depends_on: + db: + condition: service_healthy diff --git a/bonita/content.md b/bonita/content.md index acc281c83fcc..a904c550af14 100644 --- a/bonita/content.md +++ b/bonita/content.md @@ -31,14 +31,14 @@ From Bonita 2022.1 onwards, the Bonita docker image does not include configurati 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: ```bash -docker run --name mydbpostgres -h -d bonitasoft/bonita-postgres:12.6 +docker run --name mydbpostgres -h -d bonitasoft/bonita-postgres:16.4 ``` -This image is built from the following [GitHub repository](https://github.com/Bonitasoft-Community/bonita-database-docker/tree/main/postgres/12), which can be further adapted/customized to suit your needs. +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. -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). - Replace `` with the one used in the licence generation command - leave double `$$` untouched @@ -66,7 +66,7 @@ docker run --name=bonita -h --env-file=env.txt -d -p 8080:8080 %%IMAG ## Start Bonita with custom security credentials ```bash -docker run --name=bonita -h -e "TENANT_LOGIN=tech_user" -e "TENANT_PASSWORD=secret" -e "PLATFORM_LOGIN=pfadmin" -e "PLATFORM_PASSWORD=pfsecret" -d -p 8080:8080 %%IMAGE%% +docker run --name=bonita -h -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 %%IMAGE%% ``` Now you can access the Bonita Runtime on localhost:8080/bonita and login using: tech_user / secret @@ -92,11 +92,11 @@ This optional environment variable is used in conjunction with PLATFORM_PASSWORD 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. -### TENANT_LOGIN +### BONITA_RUNTIME_ADMIN_USERNAME -This optional environment variable is used in conjunction with TENANT_PASSWORD to define the username for the tenant administrator. If it is not specified, the default username `install` will be used. +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. -### TENANT_PASSWORD +### BONITA_RUNTIME_ADMIN_PASSWORD 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. @@ -190,7 +190,7 @@ These variables are used in conjunction to define how Bonita should access the [ The logger can be configured by mounting a volume on folder `/opt/bonita/conf/logs` containing the configuration files. -the volume must contain the 2 files [log4j2-loggers.xml](https://raw.githubusercontent.com/bonitasoft/bonita-distrib/7.14.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/7.14.0/docker/files/log4j2/log4j2-appenders.xml) +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) Any change made to one of this 2 files is automatically hot-reloaded and taken into account immediately. @@ -212,7 +212,7 @@ $ docker run -e HTTP_API=true -e HTTP_API_PASSWORD="My-Cust0m_S3cR3T" --name bo ## Update from an earlier version of Bonita -For updating from a version before 7.10.0, please refer to the [documentation](https://documentation.bonitasoft.com/bonita/latest/version-update/migrate-from-an-earlier-version-of-bonita) +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) - Stop the container to perform a database backup @@ -246,17 +246,16 @@ For updating from a version before 7.10.0, please refer to the [documentation](h $ cat /tmp/bonitadb.sql | psql -U newbonitauser -h 172.17.0.26 newbonitadb ``` -- Retrieve the last update tool +- Retrieve the last update tool archive from https://www.bonitasoft.com/downloads ```console - wget https://github.com/bonitasoft/bonita-platform-releases/releases/download/2023.2-u0/bonita-update-tool-3.3.0.zip - unzip bonita-update-tool-3.3.0.zip + unzip bonita-update-tool-3.6.0.zip ``` - Configure the update tool ```console - $ cd bonita-update-tool-3.3.0 + $ cd bonita-update-tool-3.6.0 ``` edit the update tool configuration file `Config.properties` to point towards the database. @@ -285,7 +284,7 @@ For updating from a version before 7.10.0, please refer to the [documentation](h - Launch the new container pointing towards the copy of the database. ```console - $ docker run --name=bonita --link mydbpostgres:postgres -e "DB_NAME=newbonitadb" -e "DB_USER=newbonitauser" -e "DB_PASS=newbonitapass" -d -p 8081:8080 %%IMAGE%%:2023.2-u0 + $ docker run --name=bonita --link mydbpostgres:postgres -e "DB_NAME=newbonitadb" -e "DB_USER=newbonitauser" -e "DB_PASS=newbonitapass" -d -p 8081:8080 %%IMAGE%%:2024.3-u0 ``` 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). diff --git a/bonita/metadata.json b/bonita/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/bonita/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/bonita/stack.yml b/bonita/stack.yml deleted file mode 100644 index 97994e559a26..000000000000 --- a/bonita/stack.yml +++ /dev/null @@ -1,49 +0,0 @@ -version: '3' - -services: - db: - image: bonitasoft/bonita-postgres:12.6 - environment: - POSTGRES_PASSWORD: example - restart: always - command: - - -c - - max_prepared_transactions=100 - bonita: - image: bonita:7.14.0 - hostname: custom-hostname.example.com - ports: - - 8080:8080 - environment: - - DB_VENDOR=postgres - - DB_HOST=db - - DB_PORT=5432 - - DB_NAME=bonita - - DB_USER=bonita - - DB_PASS=bpm - - BIZ_DB_NAME=business_data - - BIZ_DB_USER=business_data - - BIZ_DB_PASS=bpm - - TENANT_LOGIN=tech_user - - TENANT_PASSWORD=secret - - PLATFORM_LOGIN=pfadmin - - PLATFORM_PASSWORD=pfsecret - restart: on-failure:2 - depends_on: - - db - entrypoint: - - bash - - -c - - | - set -e - echo 'Waiting for PostgreSQL to be available' - maxTries=10 - while [ "$$maxTries" -gt 0 ] && [ $$(echo 'QUIT' | nc -w 1 "$$DB_HOST" 5432; echo "$$?") -gt 0 ]; do - sleep 1 - let maxTries-- - done - if [ "$$maxTries" -le 0 ]; then - echo >&2 'error: unable to contact Postgres after 10 tries' - exit 1 - fi - exec /opt/files/startup.sh /opt/bonita/server/bin/catalina.sh run diff --git a/buildpack-deps/README.md b/buildpack-deps/README.md index 68b69de2a19e..69e2de259509 100644 --- a/buildpack-deps/README.md +++ b/buildpack-deps/README.md @@ -25,32 +25,58 @@ WARNING: # Supported tags and respective `Dockerfile` links - [`bookworm-curl`, `stable-curl`, `curl`](https://github.com/docker-library/buildpack-deps/blob/3e18c3af1f5dce6a48abf036857f9097b6bd79cc/debian/bookworm/curl/Dockerfile) -- [`bookworm-scm`, `stable-scm`, `scm`](https://github.com/docker-library/buildpack-deps/blob/84e7e46026131a108a6480e5ed2969e8acf2d4e2/debian/bookworm/scm/Dockerfile) -- [`bookworm`, `stable`, `latest`](https://github.com/docker-library/buildpack-deps/blob/84e7e46026131a108a6480e5ed2969e8acf2d4e2/debian/bookworm/Dockerfile) + +- [`bookworm-scm`, `stable-scm`, `scm`](https://github.com/docker-library/buildpack-deps/blob/d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae/debian/bookworm/scm/Dockerfile) + +- [`bookworm`, `stable`, `latest`](https://github.com/docker-library/buildpack-deps/blob/d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae/debian/bookworm/Dockerfile) + - [`bullseye-curl`, `oldstable-curl`](https://github.com/docker-library/buildpack-deps/blob/93d6db0797f91ab674535553b7e0e762941a02d0/debian/bullseye/curl/Dockerfile) -- [`bullseye-scm`, `oldstable-scm`](https://github.com/docker-library/buildpack-deps/blob/65d69325ad741cea6dee20781c1faaab2e003d87/debian/bullseye/scm/Dockerfile) -- [`bullseye`, `oldstable`](https://github.com/docker-library/buildpack-deps/blob/65d69325ad741cea6dee20781c1faaab2e003d87/debian/bullseye/Dockerfile) -- [`buster-curl`, `oldoldstable-curl`](https://github.com/docker-library/buildpack-deps/blob/93d6db0797f91ab674535553b7e0e762941a02d0/debian/buster/curl/Dockerfile) -- [`buster-scm`, `oldoldstable-scm`](https://github.com/docker-library/buildpack-deps/blob/65d69325ad741cea6dee20781c1faaab2e003d87/debian/buster/scm/Dockerfile) -- [`buster`, `oldoldstable`](https://github.com/docker-library/buildpack-deps/blob/65d69325ad741cea6dee20781c1faaab2e003d87/debian/buster/Dockerfile) -- [`sid-curl`, `unstable-curl`](https://github.com/docker-library/buildpack-deps/blob/3e18c3af1f5dce6a48abf036857f9097b6bd79cc/debian/sid/curl/Dockerfile) -- [`sid-scm`, `unstable-scm`](https://github.com/docker-library/buildpack-deps/blob/65d69325ad741cea6dee20781c1faaab2e003d87/debian/sid/scm/Dockerfile) -- [`sid`, `unstable`](https://github.com/docker-library/buildpack-deps/blob/65d69325ad741cea6dee20781c1faaab2e003d87/debian/sid/Dockerfile) -- [`trixie-curl`, `testing-curl`](https://github.com/docker-library/buildpack-deps/blob/6b4838ad208cd3447d2c8d6535827e0dfc74a145/debian/trixie/curl/Dockerfile) -- [`trixie-scm`, `testing-scm`](https://github.com/docker-library/buildpack-deps/blob/443a8d3c6e53dbd17c55070de7de850f865ba6eb/debian/trixie/scm/Dockerfile) -- [`trixie`, `testing`](https://github.com/docker-library/buildpack-deps/blob/443a8d3c6e53dbd17c55070de7de850f865ba6eb/debian/trixie/Dockerfile) -- [`focal-curl`, `20.04-curl`](https://github.com/docker-library/buildpack-deps/blob/93d6db0797f91ab674535553b7e0e762941a02d0/ubuntu/focal/curl/Dockerfile) -- [`focal-scm`, `20.04-scm`](https://github.com/docker-library/buildpack-deps/blob/65d69325ad741cea6dee20781c1faaab2e003d87/ubuntu/focal/scm/Dockerfile) -- [`focal`, `20.04`](https://github.com/docker-library/buildpack-deps/blob/98a5ab81d47a106c458cdf90733df0ee8beea06c/ubuntu/focal/Dockerfile) + +- [`bullseye-scm`, `oldstable-scm`](https://github.com/docker-library/buildpack-deps/blob/d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae/debian/bullseye/scm/Dockerfile) + +- [`bullseye`, `oldstable`](https://github.com/docker-library/buildpack-deps/blob/d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae/debian/bullseye/Dockerfile) + +- [`sid-curl`, `unstable-curl`](https://github.com/docker-library/buildpack-deps/blob/2b3a8b7d1f8875865034be3bab98ddd737e37d5e/debian/sid/curl/Dockerfile) + +- [`sid-scm`, `unstable-scm`](https://github.com/docker-library/buildpack-deps/blob/2b3a8b7d1f8875865034be3bab98ddd737e37d5e/debian/sid/scm/Dockerfile) + +- [`sid`, `unstable`](https://github.com/docker-library/buildpack-deps/blob/2b3a8b7d1f8875865034be3bab98ddd737e37d5e/debian/sid/Dockerfile) + +- [`trixie-curl`, `testing-curl`](https://github.com/docker-library/buildpack-deps/blob/1f4fe499c668d9a2e1578aa8db4f0b2d14482cf5/debian/trixie/curl/Dockerfile) + +- [`trixie-scm`, `testing-scm`](https://github.com/docker-library/buildpack-deps/blob/1f4fe499c668d9a2e1578aa8db4f0b2d14482cf5/debian/trixie/scm/Dockerfile) + +- [`trixie`, `testing`](https://github.com/docker-library/buildpack-deps/blob/1f4fe499c668d9a2e1578aa8db4f0b2d14482cf5/debian/trixie/Dockerfile) + - [`jammy-curl`, `22.04-curl`](https://github.com/docker-library/buildpack-deps/blob/93d6db0797f91ab674535553b7e0e762941a02d0/ubuntu/jammy/curl/Dockerfile) -- [`jammy-scm`, `22.04-scm`](https://github.com/docker-library/buildpack-deps/blob/e2fc735283ba4e96efc3e4acf2b74bc3eccbf327/ubuntu/jammy/scm/Dockerfile) -- [`jammy`, `22.04`](https://github.com/docker-library/buildpack-deps/blob/e2fc735283ba4e96efc3e4acf2b74bc3eccbf327/ubuntu/jammy/Dockerfile) -- [`lunar-curl`, `23.04-curl`](https://github.com/docker-library/buildpack-deps/blob/3e18c3af1f5dce6a48abf036857f9097b6bd79cc/ubuntu/lunar/curl/Dockerfile) -- [`lunar-scm`, `23.04-scm`](https://github.com/docker-library/buildpack-deps/blob/31e15bc4a2352c20998e5da6bd8aaa727fd19d06/ubuntu/lunar/scm/Dockerfile) -- [`lunar`, `23.04`](https://github.com/docker-library/buildpack-deps/blob/31e15bc4a2352c20998e5da6bd8aaa727fd19d06/ubuntu/lunar/Dockerfile) -- [`mantic-curl`, `23.10-curl`](https://github.com/docker-library/buildpack-deps/blob/6b4838ad208cd3447d2c8d6535827e0dfc74a145/ubuntu/mantic/curl/Dockerfile) -- [`mantic-scm`, `23.10-scm`](https://github.com/docker-library/buildpack-deps/blob/ba367c3a52946cee45274b62f7f8b27e07807289/ubuntu/mantic/scm/Dockerfile) -- [`mantic`, `23.10`](https://github.com/docker-library/buildpack-deps/blob/ba367c3a52946cee45274b62f7f8b27e07807289/ubuntu/mantic/Dockerfile) + +- [`jammy-scm`, `22.04-scm`](https://github.com/docker-library/buildpack-deps/blob/d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae/ubuntu/jammy/scm/Dockerfile) + +- [`jammy`, `22.04`](https://github.com/docker-library/buildpack-deps/blob/d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae/ubuntu/jammy/Dockerfile) + +- [`noble-curl`, `24.04-curl`](https://github.com/docker-library/buildpack-deps/blob/60dc5f9555c521de086b2f5770514faf69ee2cc4/ubuntu/noble/curl/Dockerfile) + +- [`noble-scm`, `24.04-scm`](https://github.com/docker-library/buildpack-deps/blob/60dc5f9555c521de086b2f5770514faf69ee2cc4/ubuntu/noble/scm/Dockerfile) + +- [`noble`, `24.04`](https://github.com/docker-library/buildpack-deps/blob/60dc5f9555c521de086b2f5770514faf69ee2cc4/ubuntu/noble/Dockerfile) + +- [`oracular-curl`, `24.10-curl`](https://github.com/docker-library/buildpack-deps/blob/f24f02bc0fda57d7f0e30b205df4a38114712b0a/ubuntu/oracular/curl/Dockerfile) + +- [`oracular-scm`, `24.10-scm`](https://github.com/docker-library/buildpack-deps/blob/f24f02bc0fda57d7f0e30b205df4a38114712b0a/ubuntu/oracular/scm/Dockerfile) + +- [`oracular`, `24.10`](https://github.com/docker-library/buildpack-deps/blob/f24f02bc0fda57d7f0e30b205df4a38114712b0a/ubuntu/oracular/Dockerfile) + +- [`plucky-curl`, `25.04-curl`](https://github.com/docker-library/buildpack-deps/blob/ab3ae04e943ecb240a9691dfa1de219b4a3e32a0/ubuntu/plucky/curl/Dockerfile) + +- [`plucky-scm`, `25.04-scm`](https://github.com/docker-library/buildpack-deps/blob/ab3ae04e943ecb240a9691dfa1de219b4a3e32a0/ubuntu/plucky/scm/Dockerfile) + +- [`plucky`, `25.04`](https://github.com/docker-library/buildpack-deps/blob/ab3ae04e943ecb240a9691dfa1de219b4a3e32a0/ubuntu/plucky/Dockerfile) + +- [`questing-curl`, `25.10-curl`](https://github.com/docker-library/buildpack-deps/blob/99e7dc24c50c0a7be371ea9e6aed6134ce4cbfeb/ubuntu/questing/curl/Dockerfile) + +- [`questing-scm`, `25.10-scm`](https://github.com/docker-library/buildpack-deps/blob/99e7dc24c50c0a7be371ea9e6aed6134ce4cbfeb/ubuntu/questing/scm/Dockerfile) + +- [`questing`, `25.10`](https://github.com/docker-library/buildpack-deps/blob/99e7dc24c50c0a7be371ea9e6aed6134ce4cbfeb/ubuntu/questing/Dockerfile) # Quick reference (cont.) diff --git a/buildpack-deps/metadata.json b/buildpack-deps/metadata.json new file mode 100644 index 000000000000..67e782480585 --- /dev/null +++ b/buildpack-deps/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "developer-tools" + ] + } +} diff --git a/busybox/README.md b/busybox/README.md index 078471358187..e5ca4ea86aed 100644 --- a/busybox/README.md +++ b/busybox/README.md @@ -24,14 +24,21 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.36.1-glibc`, `1.36-glibc`, `1-glibc`, `stable-glibc`, `glibc`](https://github.com/docker-library/busybox/blob/089e2f966d5db5cbc2f6ea1b5f7e2a92d15a07b3/latest/glibc/Dockerfile) -- [`1.36.1-uclibc`, `1.36-uclibc`, `1-uclibc`, `stable-uclibc`, `uclibc`](https://github.com/docker-library/busybox/blob/089e2f966d5db5cbc2f6ea1b5f7e2a92d15a07b3/latest/uclibc/Dockerfile) -- [`1.36.1-musl`, `1.36-musl`, `1-musl`, `stable-musl`, `musl`](https://github.com/docker-library/busybox/blob/089e2f966d5db5cbc2f6ea1b5f7e2a92d15a07b3/latest/musl/Dockerfile) -- [`1.36.1`, `1.36`, `1`, `stable`, `latest`](https://github.com/docker-library/busybox/blob/089e2f966d5db5cbc2f6ea1b5f7e2a92d15a07b3/latest/glibc/Dockerfile) -- [`1.35.0-glibc`, `1.35-glibc`](https://github.com/docker-library/busybox/blob/089e2f966d5db5cbc2f6ea1b5f7e2a92d15a07b3/latest-1/glibc/Dockerfile) -- [`1.35.0-uclibc`, `1.35-uclibc`](https://github.com/docker-library/busybox/blob/089e2f966d5db5cbc2f6ea1b5f7e2a92d15a07b3/latest-1/uclibc/Dockerfile) -- [`1.35.0-musl`, `1.35-musl`](https://github.com/docker-library/busybox/blob/089e2f966d5db5cbc2f6ea1b5f7e2a92d15a07b3/latest-1/musl/Dockerfile) -- [`1.35.0`, `1.35`](https://github.com/docker-library/busybox/blob/089e2f966d5db5cbc2f6ea1b5f7e2a92d15a07b3/latest-1/glibc/Dockerfile) +- [`1.37.0-glibc`, `1.37-glibc`, `1-glibc`, `unstable-glibc`, `glibc`](https://github.com/docker-library/busybox/blob/d8f3d64265a740b8b5420edb72523a88130f7ef5/latest/glibc/amd64/index.json) + +- [`1.37.0-uclibc`, `1.37-uclibc`, `1-uclibc`, `unstable-uclibc`, `uclibc`](https://github.com/docker-library/busybox/blob/d8f3d64265a740b8b5420edb72523a88130f7ef5/latest/uclibc/amd64/index.json) + +- [`1.37.0-musl`, `1.37-musl`, `1-musl`, `unstable-musl`, `musl`](https://github.com/docker-library/busybox/blob/d8f3d64265a740b8b5420edb72523a88130f7ef5/latest/musl/amd64/index.json) + +- [`1.37.0`, `1.37`, `1`, `unstable`, `latest`](https://github.com/docker-library/busybox/blob/d8f3d64265a740b8b5420edb72523a88130f7ef5/latest/glibc/amd64/index.json) + +- [`1.36.1-glibc`, `1.36-glibc`, `stable-glibc`](https://github.com/docker-library/busybox/blob/d8f3d64265a740b8b5420edb72523a88130f7ef5/latest-1/glibc/amd64/index.json) + +- [`1.36.1-uclibc`, `1.36-uclibc`, `stable-uclibc`](https://github.com/docker-library/busybox/blob/d8f3d64265a740b8b5420edb72523a88130f7ef5/latest-1/uclibc/amd64/index.json) + +- [`1.36.1-musl`, `1.36-musl`, `stable-musl`](https://github.com/docker-library/busybox/blob/d8f3d64265a740b8b5420edb72523a88130f7ef5/latest-1/musl/amd64/index.json) + +- [`1.36.1`, `1.36`, `stable`](https://github.com/docker-library/busybox/blob/d8f3d64265a740b8b5420edb72523a88130f7ef5/latest-1/glibc/amd64/index.json) # Quick reference (cont.) diff --git a/busybox/metadata.json b/busybox/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/busybox/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/caddy/README.md b/caddy/README.md index 661029836a82..a232179b787c 100644 --- a/caddy/README.md +++ b/caddy/README.md @@ -28,26 +28,36 @@ WARNING: ## Simple Tags -- [`2.7.5-alpine`, `2.7-alpine`, `2-alpine`, `alpine`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/alpine/Dockerfile) -- [`2.7.5-builder-alpine`, `2.7-builder-alpine`, `2-builder-alpine`, `builder-alpine`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/builder/Dockerfile) -- [`2.7.5-windowsservercore-1809`, `2.7-windowsservercore-1809`, `2-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows/1809/Dockerfile) -- [`2.7.5-windowsservercore-ltsc2022`, `2.7-windowsservercore-ltsc2022`, `2-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows/ltsc2022/Dockerfile) -- [`2.7.5-builder-windowsservercore-1809`, `2.7-builder-windowsservercore-1809`, `2-builder-windowsservercore-1809`, `builder-windowsservercore-1809`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows-builder/1809/Dockerfile) -- [`2.7.5-builder-windowsservercore-ltsc2022`, `2.7-builder-windowsservercore-ltsc2022`, `2-builder-windowsservercore-ltsc2022`, `builder-windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows-builder/ltsc2022/Dockerfile) +- [`2.10.0-alpine`, `2.10-alpine`, `2-alpine`, `alpine`](https://github.com/caddyserver/caddy-docker/blob/aa3e73e0731fbca665be75edef9fbb60d3169278/2.10/alpine/Dockerfile) + +- [`2.10.0-builder-alpine`, `2.10-builder-alpine`, `2-builder-alpine`, `builder-alpine`](https://github.com/caddyserver/caddy-docker/blob/aa3e73e0731fbca665be75edef9fbb60d3169278/2.10/builder/Dockerfile) + +- [`2.10.0-windowsservercore-ltsc2022`, `2.10-windowsservercore-ltsc2022`, `2-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/aa3e73e0731fbca665be75edef9fbb60d3169278/2.10/windows/ltsc2022/Dockerfile) + +- [`2.10.0-windowsservercore-ltsc2025`, `2.10-windowsservercore-ltsc2025`, `2-windowsservercore-ltsc2025`, `windowsservercore-ltsc2025`](https://github.com/caddyserver/caddy-docker/blob/b4226f27405e98d9330ca807a80807d5d523ebba/2.10/windows/ltsc2025/Dockerfile) + +- [`2.10.0-builder-windowsservercore-ltsc2022`, `2.10-builder-windowsservercore-ltsc2022`, `2-builder-windowsservercore-ltsc2022`, `builder-windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/aa3e73e0731fbca665be75edef9fbb60d3169278/2.10/windows-builder/ltsc2022/Dockerfile) + +- [`2.10.0-builder-windowsservercore-ltsc2025`, `2.10-builder-windowsservercore-ltsc2025`, `2-builder-windowsservercore-ltsc2025`, `builder-windowsservercore-ltsc2025`](https://github.com/caddyserver/caddy-docker/blob/b4226f27405e98d9330ca807a80807d5d523ebba/2.10/windows-builder/ltsc2025/Dockerfile) ## Shared Tags -- `2.7.5`, `2.7`, `2`, `latest`: - - [`2.7.5-alpine`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/alpine/Dockerfile) - - [`2.7.5-windowsservercore-1809`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows/1809/Dockerfile) - - [`2.7.5-windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows/ltsc2022/Dockerfile) -- `2.7.5-builder`, `2.7-builder`, `2-builder`, `builder`: - - [`2.7.5-builder-alpine`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/builder/Dockerfile) - - [`2.7.5-builder-windowsservercore-1809`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows-builder/1809/Dockerfile) - - [`2.7.5-builder-windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows-builder/ltsc2022/Dockerfile) -- `2.7.5-windowsservercore`, `2.7-windowsservercore`, `2-windowsservercore`, `windowsservercore`: - - [`2.7.5-windowsservercore-1809`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows/1809/Dockerfile) - - [`2.7.5-windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/0b5f063a37d52d579b6d4e64b2e2409ad89f7c7a/2.7/windows/ltsc2022/Dockerfile) +- `2.10.0`, `2.10`, `2`, `latest`: + + - [`2.10.0-alpine`](https://github.com/caddyserver/caddy-docker/blob/aa3e73e0731fbca665be75edef9fbb60d3169278/2.10/alpine/Dockerfile) + - [`2.10.0-windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/aa3e73e0731fbca665be75edef9fbb60d3169278/2.10/windows/ltsc2022/Dockerfile) + - [`2.10.0-windowsservercore-ltsc2025`](https://github.com/caddyserver/caddy-docker/blob/b4226f27405e98d9330ca807a80807d5d523ebba/2.10/windows/ltsc2025/Dockerfile) + +- `2.10.0-builder`, `2.10-builder`, `2-builder`, `builder`: + + - [`2.10.0-builder-alpine`](https://github.com/caddyserver/caddy-docker/blob/aa3e73e0731fbca665be75edef9fbb60d3169278/2.10/builder/Dockerfile) + - [`2.10.0-builder-windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/aa3e73e0731fbca665be75edef9fbb60d3169278/2.10/windows-builder/ltsc2022/Dockerfile) + - [`2.10.0-builder-windowsservercore-ltsc2025`](https://github.com/caddyserver/caddy-docker/blob/b4226f27405e98d9330ca807a80807d5d523ebba/2.10/windows-builder/ltsc2025/Dockerfile) + +- `2.10.0-windowsservercore`, `2.10-windowsservercore`, `2-windowsservercore`, `windowsservercore`: + + - [`2.10.0-windowsservercore-ltsc2022`](https://github.com/caddyserver/caddy-docker/blob/aa3e73e0731fbca665be75edef9fbb60d3169278/2.10/windows/ltsc2022/Dockerfile) + - [`2.10.0-windowsservercore-ltsc2025`](https://github.com/caddyserver/caddy-docker/blob/b4226f27405e98d9330ca807a80807d5d523ebba/2.10/windows/ltsc2025/Dockerfile) # Quick reference (cont.) @@ -55,7 +65,7 @@ WARNING: [https://github.com/caddyserver/caddy-docker/issues](https://github.com/caddyserver/caddy-docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/caddy/), [`arm32v6`](https://hub.docker.com/r/arm32v6/caddy/), [`arm32v7`](https://hub.docker.com/r/arm32v7/caddy/), [`arm64v8`](https://hub.docker.com/r/arm64v8/caddy/), [`ppc64le`](https://hub.docker.com/r/ppc64le/caddy/), [`s390x`](https://hub.docker.com/r/s390x/caddy/), [`windows-amd64`](https://hub.docker.com/r/winamd64/caddy/) + [`amd64`](https://hub.docker.com/r/amd64/caddy/), [`arm32v6`](https://hub.docker.com/r/arm32v6/caddy/), [`arm32v7`](https://hub.docker.com/r/arm32v7/caddy/), [`arm64v8`](https://hub.docker.com/r/arm64v8/caddy/), [`ppc64le`](https://hub.docker.com/r/ppc64le/caddy/), [`riscv64`](https://hub.docker.com/r/riscv64/caddy/), [`s390x`](https://hub.docker.com/r/s390x/caddy/), [`windows-amd64`](https://hub.docker.com/r/winamd64/caddy/) - **Published image artifact details**: [repo-info repo's `repos/caddy/` directory](https://github.com/docker-library/repo-info/blob/master/repos/caddy) ([history](https://github.com/docker-library/repo-info/commits/master/repos/caddy)) @@ -105,15 +115,19 @@ $ curl http://localhost/ hello world ``` -To override the default [`Caddyfile`](https://github.com/caddyserver/dist/blob/master/config/Caddyfile), you can mount a new one at `/etc/caddy/Caddyfile`: +To override the default [`Caddyfile`](https://github.com/caddyserver/dist/blob/master/config/Caddyfile), you can create one in the subfolder `conf` at `$PWD/conf/Caddyfile` and mount this folder at `/etc/caddy`: ```console $ docker run -d -p 80:80 \ - -v $PWD/Caddyfile:/etc/caddy/Caddyfile \ + -v $PWD/conf:/etc/caddy \ -v caddy_data:/data \ caddy ``` +#### ⚠️ Do not mount the Caddyfile directly at `/etc/caddy/Caddyfile` + +If vim or another editor is used that changes the inode of the edited file, the changes will only be applied within the container when the container is recreated, which is explained in detail in this [Medium article](https://medium.com/@jonsbun/why-need-to-be-careful-when-mounting-single-files-into-a-docker-container-4f929340834). When using such an editor, Caddy's graceful reload functionality might not work as expected, as described in [this issue](https://github.com/caddyserver/caddy/issues/5735#issuecomment-1675896585). + ### Automatic TLS with the Caddy image The default `Caddyfile` only listens to port `80`, and does not set up automatic TLS. However, if you have a domain name for your site, and its A/AAAA DNS records are properly pointed to this machine's public IP, then you can use this command to simply serve a site over HTTPS: @@ -160,7 +174,7 @@ FROM caddy: COPY --from=builder /usr/bin/caddy /usr/bin/caddy ``` -Note the second `FROM` instruction - this produces a much smaller image by simply overlaying the newly-built binary on top of the the regular `caddy` image. +Note the second `FROM` instruction - this produces a much smaller image by simply overlaying the newly-built binary on top of the regular `caddy` image. The [`xcaddy`](https://caddyserver.com/docs/build#xcaddy) tool is used to [build a new Caddy entrypoint](https://github.com/caddyserver/caddy/blob/4217217badf220d7d2c25f43f955fdc8454f2c64/cmd/caddy/main.go#L15..L25), with the provided modules. You can specify just a module name, or a name with a version (separated by `@`). You can also specify a specific version (can be a version tag or commit hash) of Caddy to build from. Read more about [`xcaddy` usage](https://github.com/caddyserver/xcaddy#command-usage). @@ -189,11 +203,9 @@ See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for more details. ### Docker Compose example -If you prefer to use `docker-compose` to run your stack, here's a sample service definition. +If you prefer to use `docker compose` to run your stack, here's a sample service definition which goes in a file named `compose.yaml`. The configuration assumes you put a custom Caddyfile into `$PWD/conf` as described [above](#basic-usage). ```yaml -version: "3.7" - services: caddy: image: caddy: @@ -205,18 +217,17 @@ services: - "443:443" - "443:443/udp" volumes: - - $PWD/Caddyfile:/etc/caddy/Caddyfile + - $PWD/conf:/etc/caddy - $PWD/site:/srv - caddy_data:/data - caddy_config:/config volumes: caddy_data: - external: true caddy_config: ``` -Defining the data volume as [`external`](https://docs.docker.com/compose/compose-file/compose-file-v3/#external) makes sure `docker-compose down` does not delete the volume. You may need to create it manually using `docker volume create [project-name]_caddy_data`. +Graceful reloads can then be conducted via `docker compose exec -w /etc/caddy caddy caddy reload`. # Image Variants diff --git a/caddy/content.md b/caddy/content.md index f97e70bff147..e38e50c87b7f 100644 --- a/caddy/content.md +++ b/caddy/content.md @@ -35,15 +35,19 @@ $ curl http://localhost/ hello world ``` -To override the default [`Caddyfile`](https://github.com/caddyserver/dist/blob/master/config/Caddyfile), you can mount a new one at `/etc/caddy/Caddyfile`: +To override the default [`Caddyfile`](https://github.com/caddyserver/dist/blob/master/config/Caddyfile), you can create one in the subfolder `conf` at `$PWD/conf/Caddyfile` and mount this folder at `/etc/caddy`: ```console $ docker run -d -p 80:80 \ - -v $PWD/Caddyfile:/etc/caddy/Caddyfile \ + -v $PWD/conf:/etc/caddy \ -v caddy_data:/data \ %%IMAGE%% ``` +#### ⚠️ Do not mount the Caddyfile directly at `/etc/caddy/Caddyfile` + +If vim or another editor is used that changes the inode of the edited file, the changes will only be applied within the container when the container is recreated, which is explained in detail in this [Medium article](https://medium.com/@jonsbun/why-need-to-be-careful-when-mounting-single-files-into-a-docker-container-4f929340834). When using such an editor, Caddy's graceful reload functionality might not work as expected, as described in [this issue](https://github.com/caddyserver/caddy/issues/5735#issuecomment-1675896585). + ### Automatic TLS with the Caddy image The default `Caddyfile` only listens to port `80`, and does not set up automatic TLS. However, if you have a domain name for your site, and its A/AAAA DNS records are properly pointed to this machine's public IP, then you can use this command to simply serve a site over HTTPS: @@ -90,7 +94,7 @@ FROM %%IMAGE%%: COPY --from=builder /usr/bin/caddy /usr/bin/caddy ``` -Note the second `FROM` instruction - this produces a much smaller image by simply overlaying the newly-built binary on top of the the regular `%%IMAGE%%` image. +Note the second `FROM` instruction - this produces a much smaller image by simply overlaying the newly-built binary on top of the regular `%%IMAGE%%` image. The [`xcaddy`](https://caddyserver.com/docs/build#xcaddy) tool is used to [build a new Caddy entrypoint](https://github.com/caddyserver/caddy/blob/4217217badf220d7d2c25f43f955fdc8454f2c64/cmd/caddy/main.go#L15..L25), with the provided modules. You can specify just a module name, or a name with a version (separated by `@`). You can also specify a specific version (can be a version tag or commit hash) of Caddy to build from. Read more about [`xcaddy` usage](https://github.com/caddyserver/xcaddy#command-usage). @@ -119,11 +123,9 @@ See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for more details. ### Docker Compose example -If you prefer to use `docker-compose` to run your stack, here's a sample service definition. +If you prefer to use `docker compose` to run your stack, here's a sample service definition which goes in a file named `compose.yaml`. The configuration assumes you put a custom Caddyfile into `$PWD/conf` as described [above](#basic-usage). ```yaml -version: "3.7" - services: caddy: image: %%IMAGE%%: @@ -135,15 +137,14 @@ services: - "443:443" - "443:443/udp" volumes: - - $PWD/Caddyfile:/etc/caddy/Caddyfile + - $PWD/conf:/etc/caddy - $PWD/site:/srv - caddy_data:/data - caddy_config:/config volumes: caddy_data: - external: true caddy_config: ``` -Defining the data volume as [`external`](https://docs.docker.com/compose/compose-file/compose-file-v3/#external) makes sure `docker-compose down` does not delete the volume. You may need to create it manually using `docker volume create [project-name]_caddy_data`. +Graceful reloads can then be conducted via `docker compose exec -w /etc/caddy caddy caddy reload`. diff --git a/caddy/metadata.json b/caddy/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/caddy/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/cassandra/README.md b/cassandra/README.md index 026c953ad410..c3532c259208 100644 --- a/cassandra/README.md +++ b/cassandra/README.md @@ -24,11 +24,15 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.0-alpha2`, `5.0`, `5`](https://github.com/docker-library/cassandra/blob/12ee728efc59b4aa6cc02c637396c8460ee1e3cd/5.0/Dockerfile) -- [`4.1.3`, `4.1`, `4`, `latest`](https://github.com/docker-library/cassandra/blob/44614387cda4278e477056c24cde3070f679a32a/4.1/Dockerfile) -- [`4.0.11`, `4.0`](https://github.com/docker-library/cassandra/blob/b57fae57e886db7b46c0851ed761b6b0a260f065/4.0/Dockerfile) -- [`3.11.16`, `3.11`, `3`](https://github.com/docker-library/cassandra/blob/76e413ded2e5eb2c61d97296d01400d2fff2d6d5/3.11/Dockerfile) -- [`3.0.29`, `3.0`](https://github.com/docker-library/cassandra/blob/0472adffa9e3b3361f2dbe4b089592d1cb84d36d/3.0/Dockerfile) +- [`5.0.4`, `5.0`, `5`, `latest`, `5.0.4-jammy`, `5.0-jammy`, `5-jammy`, `jammy`](https://github.com/docker-library/cassandra/blob/0f32c04c976068ddf4b094044bd333ca46d42887/5.0/Dockerfile) + +- [`4.1.9`, `4.1`, `4`, `4.1.9-jammy`, `4.1-jammy`, `4-jammy`](https://github.com/docker-library/cassandra/blob/8b125f8e4cb082768e6d299130722ed3547e2206/4.1/Dockerfile) + +- [`4.0.18`, `4.0`, `4.0.18-jammy`, `4.0-jammy`](https://github.com/docker-library/cassandra/blob/b4b0579f68b8dfbffb61a438c8aaad14fccf44c4/4.0/Dockerfile) + +- [`3.11.19`, `3.11`, `3`, `3.11.19-jammy`, `3.11-jammy`, `3-jammy`](https://github.com/docker-library/cassandra/blob/4acdd8cbbc6f21083e9b8176452a2728fa08f2c7/3.11/Dockerfile) + +- [`3.0.32`, `3.0`, `3.0.32-jammy`, `3.0-jammy`](https://github.com/docker-library/cassandra/blob/4acdd8cbbc6f21083e9b8176452a2728fa08f2c7/3.0/Dockerfile) # Quick reference (cont.) @@ -131,7 +135,7 @@ There are a small number of environment variables supported by the image which w - `CASSANDRA_START_RPC`: This variable is for controlling if the thrift rpc server is started. It will set the [`start_rpc`](http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html?scroll=configCassandra_yaml__start_rpc) option in `cassandra.yaml`. -- `CASSANDRA_SEEDS`: This variable is the comma-separated list of IP addresses used by gossip for bootstrapping new nodes joining a cluster. It will set the `seeds` value of the [`seed_provider`](http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html?scroll=configCassandra_yaml__seed_provider) option in `cassandra.yaml`. The `CASSANDRA_BROADCAST_ADDRESS` will be added the the seeds passed in so that the server will talk to itself as well. +- `CASSANDRA_SEEDS`: This variable is the comma-separated list of IP addresses used by gossip for bootstrapping new nodes joining a cluster. It will set the `seeds` value of the [`seed_provider`](http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html?scroll=configCassandra_yaml__seed_provider) option in `cassandra.yaml`. The `CASSANDRA_BROADCAST_ADDRESS` will be added the seeds passed in so that the server will talk to itself as well. - `CASSANDRA_CLUSTER_NAME`: This variable sets the name of the cluster and must be the same for all nodes in the cluster. It will set the [`cluster_name`](http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html?scroll=configCassandra_yaml__cluster_name) option of `cassandra.yaml`. @@ -149,8 +153,8 @@ There are a small number of environment variables supported by the image which w Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `cassandra` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: @@ -165,7 +169,7 @@ The `-v /my/own/datadir:/var/lib/cassandra` part of the command mounts the `/my/ ## No connections until Cassandra init completes -If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker-compose`, which start several containers simultaneously. +If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as Docker Compose, which start several containers simultaneously. # License diff --git a/cassandra/content.md b/cassandra/content.md index cab3d2bcd26c..b2988a75012d 100644 --- a/cassandra/content.md +++ b/cassandra/content.md @@ -80,7 +80,7 @@ There are a small number of environment variables supported by the image which w - `CASSANDRA_START_RPC`: This variable is for controlling if the thrift rpc server is started. It will set the [`start_rpc`](http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html?scroll=configCassandra_yaml__start_rpc) option in `cassandra.yaml`. -- `CASSANDRA_SEEDS`: This variable is the comma-separated list of IP addresses used by gossip for bootstrapping new nodes joining a cluster. It will set the `seeds` value of the [`seed_provider`](http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html?scroll=configCassandra_yaml__seed_provider) option in `cassandra.yaml`. The `CASSANDRA_BROADCAST_ADDRESS` will be added the the seeds passed in so that the server will talk to itself as well. +- `CASSANDRA_SEEDS`: This variable is the comma-separated list of IP addresses used by gossip for bootstrapping new nodes joining a cluster. It will set the `seeds` value of the [`seed_provider`](http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html?scroll=configCassandra_yaml__seed_provider) option in `cassandra.yaml`. The `CASSANDRA_BROADCAST_ADDRESS` will be added the seeds passed in so that the server will talk to itself as well. - `CASSANDRA_CLUSTER_NAME`: This variable sets the name of the cluster and must be the same for all nodes in the cluster. It will set the [`cluster_name`](http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html?scroll=configCassandra_yaml__cluster_name) option of `cassandra.yaml`. @@ -98,8 +98,8 @@ There are a small number of environment variables supported by the image which w Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `%%REPO%%` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: @@ -114,4 +114,4 @@ The `-v /my/own/datadir:/var/lib/cassandra` part of the command mounts the `/my/ ## No connections until Cassandra init completes -If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker-compose`, which start several containers simultaneously. +If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as Docker Compose, which start several containers simultaneously. diff --git a/cassandra/metadata.json b/cassandra/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/cassandra/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/centos/README-short.txt b/centos/README-short.txt deleted file mode 100644 index 8783972e1d40..000000000000 --- a/centos/README-short.txt +++ /dev/null @@ -1 +0,0 @@ -DEPRECATED; The official build of CentOS. diff --git a/centos/README.md b/centos/README.md deleted file mode 100644 index 495133cefec6..000000000000 --- a/centos/README.md +++ /dev/null @@ -1,169 +0,0 @@ - - -# **DEPRECATION NOTICE** - -This image is no longer supported/maintained (non-EOL tags last updated November 16, 2020, [docker-library/official-images#9102](https://github.com/docker-library/official-images/pull/9102); see also https://www.centos.org/centos-linux-eol/ and [docker-library/docs#2205](https://github.com/docker-library/docs/pull/2205)). Please adjust your usage accordingly. - -# Quick reference - -- **Maintained by**: - [The CentOS Project](https://github.com/CentOS/sig-cloud-instance-images) - -- **Where to get help**: - [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) - -# Supported tags and respective `Dockerfile` links - -- [`centos7`, `7`, `centos7.9.2009`, `7.9.2009`](https://github.com/CentOS/sig-cloud-instance-images/blob/b2d195220e1c5b181427c3172829c23ab9cd27eb/docker/Dockerfile) - -# Quick reference (cont.) - -- **Where to file issues**: - [https://bugs.centos.org](https://bugs.centos.org) or [GitHub](https://github.com/CentOS/sig-cloud-instance-images/issues) - -- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/centos/), [`arm32v7`](https://hub.docker.com/r/arm32v7/centos/), [`arm64v8`](https://hub.docker.com/r/arm64v8/centos/), [`i386`](https://hub.docker.com/r/i386/centos/), [`ppc64le`](https://hub.docker.com/r/ppc64le/centos/) - -- **Published image artifact details**: - [repo-info repo's `repos/centos/` directory](https://github.com/docker-library/repo-info/blob/master/repos/centos) ([history](https://github.com/docker-library/repo-info/commits/master/repos/centos)) - (image metadata, transfer size, etc) - -- **Image updates**: - [official-images repo's `library/centos` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fcentos) - [official-images repo's `library/centos` file](https://github.com/docker-library/official-images/blob/master/library/centos) ([history](https://github.com/docker-library/official-images/commits/master/library/centos)) - -- **Source of this description**: - [docs repo's `centos/` directory](https://github.com/docker-library/docs/tree/master/centos) ([history](https://github.com/docker-library/docs/commits/master/centos)) - -# CentOS - -CentOS Linux is a community-supported distribution derived from sources freely provided to the public by [Red Hat](ftp://ftp.redhat.com/pub/redhat/linux/enterprise/) for Red Hat Enterprise Linux (RHEL). As such, CentOS Linux aims to be functionally compatible with RHEL. The CentOS Project mainly changes packages to remove upstream vendor branding and artwork. CentOS Linux is no-cost and free to redistribute. Each CentOS Linux version is maintained for up to 10 years (by means of security updates -- the duration of the support interval by Red Hat has varied over time with respect to Sources released). A new CentOS Linux version is released approximately every 2 years and each CentOS Linux version is periodically updated (roughly every 6 months) to support newer hardware. This results in a secure, low-maintenance, reliable, predictable, and reproducible Linux environment. - -> [wiki.centos.org](https://wiki.centos.org/FrontPage) - -![logo](https://raw.githubusercontent.com/docker-library/docs/c4df0024e2cad985326dc38f6b6ce39abeab59c5/centos/logo.png) - -# CentOS image documentation - -The `centos:latest` tag is always the most recent version currently available. - -## Rolling builds - -The CentOS Project offers regularly updated images for all active releases. These images will be updated monthly or as needed for emergency fixes. These rolling updates are tagged with the major version number only. For example: `docker pull centos:6` or `docker pull centos:7` - -## Minor tags - -Additionally, images with minor version tags that correspond to install media are also offered. **These images DO NOT receive updates** as they are intended to match installation iso contents. If you choose to use these images it is highly recommended that you include `RUN yum -y update && yum clean all` in your Dockerfile, or otherwise address any potential security concerns. To use these images, please specify the minor version tag: - -For example: `docker pull centos:5.11` or `docker pull centos:6.6` - -## Overlayfs and yum - -Recent Docker versions support the [overlayfs](https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/) backend, which is enabled by default on most distros supporting it from Docker 1.13 onwards. On Centos 6 and 7, **that backend requires yum-plugin-ovl to be installed and enabled**; while it is installed by default in recent centos images, make it sure you retain the `plugins=1` option in `/etc/yum.conf` if you update that file; otherwise, you may encounter errors related to rpmdb checksum failure - see [Docker ticket 10180](https://github.com/docker/docker/issues/10180) for more details. - -# Package documentation - -By default, the CentOS containers are built using yum's `nodocs` option, which helps reduce the size of the image. If you install a package and discover files missing, please comment out the line `tsflags=nodocs` in `/etc/yum.conf` and reinstall your package. - -# Systemd integration - -Systemd is now included in both the centos:7 and centos:latest base containers, but it is not active by default. In order to use systemd, you will need to include text similar to the example Dockerfile below: - -## Dockerfile for systemd base image - -```dockerfile -FROM centos:7 -ENV container docker -RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ -systemd-tmpfiles-setup.service ] || rm -f $i; done); \ -rm -f /lib/systemd/system/multi-user.target.wants/*;\ -rm -f /etc/systemd/system/*.wants/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ -rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ -rm -f /lib/systemd/system/basic.target.wants/*;\ -rm -f /lib/systemd/system/anaconda.target.wants/*; -VOLUME [ "/sys/fs/cgroup" ] -CMD ["/usr/sbin/init"] -``` - -This Dockerfile deletes a number of unit files which might cause issues. From here, you are ready to build your base image. - -```console -$ docker build --rm -t local/c7-systemd . -``` - -## Example systemd enabled app container - -In order to use the systemd enabled base container created above, you will need to create your `Dockerfile` similar to the one below. - -```dockerfile -FROM local/c7-systemd -RUN yum -y install httpd; yum clean all; systemctl enable httpd.service -EXPOSE 80 -CMD ["/usr/sbin/init"] -``` - -Build this image: - -```console -$ docker build --rm -t local/c7-systemd-httpd . -``` - -## Running a systemd enabled app container - -In order to run a container with systemd, you will need to mount the cgroups volumes from the host. Below is an example command that will run the systemd enabled httpd container created earlier. - -```console -$ docker run -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 local/c7-systemd-httpd -``` - -This container is running with systemd in a limited context, with the cgroups filesystem mounted. There have been reports that if you're using an Ubuntu host, you will need to add `-v /tmp/$(mktemp -d):/run` in addition to the cgroups mount. - -## A note about vsyscall - -CentOS 6 binaries and/or libraries are built to expect some system calls to be accessed via `vsyscall` mappings. Some linux distributions have opted to disable `vsyscall` entirely (opting exclusively for more secure `vdso` mappings), causing segmentation faults. - -If running `docker run --rm -it centos:centos6.7 bash` immediately exits with status code `139`, check to see if your system has disabled vsyscall: - -```console -$ cat /proc/self/maps | egrep 'vdso|vsyscall' -7fffccfcc000-7fffccfce000 r-xp 00000000 00:00 0 [vdso] -$ -``` - -vs - -```console -$ cat /proc/self/maps | egrep 'vdso|vsyscall' -7fffe03fe000-7fffe0400000 r-xp 00000000 00:00 0 [vdso] -ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] -``` - -If you do not see a `vsyscall` mapping, and you need to run a CentOS 6 container, try adding `vsyscall=emulated` to the kernel options in your bootloader - -Further reading : [lwn.net](https://lwn.net/Articles/446528/) - -# License - -View [license information](https://www.centos.org/legal/) for the software contained in this image. - -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). - -Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `centos/` directory](https://github.com/docker-library/repo-info/tree/master/repos/centos). - -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. diff --git a/centos/content.md b/centos/content.md deleted file mode 100644 index 2ad2c140ca54..000000000000 --- a/centos/content.md +++ /dev/null @@ -1,108 +0,0 @@ -# CentOS - -CentOS Linux is a community-supported distribution derived from sources freely provided to the public by [Red Hat](ftp://ftp.redhat.com/pub/redhat/linux/enterprise/) for Red Hat Enterprise Linux (RHEL). As such, CentOS Linux aims to be functionally compatible with RHEL. The CentOS Project mainly changes packages to remove upstream vendor branding and artwork. CentOS Linux is no-cost and free to redistribute. Each CentOS Linux version is maintained for up to 10 years (by means of security updates -- the duration of the support interval by Red Hat has varied over time with respect to Sources released). A new CentOS Linux version is released approximately every 2 years and each CentOS Linux version is periodically updated (roughly every 6 months) to support newer hardware. This results in a secure, low-maintenance, reliable, predictable, and reproducible Linux environment. - -> [wiki.centos.org](https://wiki.centos.org/FrontPage) - -%%LOGO%% - -# CentOS image documentation - -The `%%IMAGE%%:latest` tag is always the most recent version currently available. - -## Rolling builds - -The CentOS Project offers regularly updated images for all active releases. These images will be updated monthly or as needed for emergency fixes. These rolling updates are tagged with the major version number only. For example: `docker pull %%IMAGE%%:6` or `docker pull %%IMAGE%%:7` - -## Minor tags - -Additionally, images with minor version tags that correspond to install media are also offered. **These images DO NOT receive updates** as they are intended to match installation iso contents. If you choose to use these images it is highly recommended that you include `RUN yum -y update && yum clean all` in your Dockerfile, or otherwise address any potential security concerns. To use these images, please specify the minor version tag: - -For example: `docker pull %%IMAGE%%:5.11` or `docker pull %%IMAGE%%:6.6` - -## Overlayfs and yum - -Recent Docker versions support the [overlayfs](https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/) backend, which is enabled by default on most distros supporting it from Docker 1.13 onwards. On Centos 6 and 7, **that backend requires yum-plugin-ovl to be installed and enabled**; while it is installed by default in recent %%IMAGE%% images, make it sure you retain the `plugins=1` option in `/etc/yum.conf` if you update that file; otherwise, you may encounter errors related to rpmdb checksum failure - see [Docker ticket 10180](https://github.com/docker/docker/issues/10180) for more details. - -# Package documentation - -By default, the CentOS containers are built using yum's `nodocs` option, which helps reduce the size of the image. If you install a package and discover files missing, please comment out the line `tsflags=nodocs` in `/etc/yum.conf` and reinstall your package. - -# Systemd integration - -Systemd is now included in both the %%IMAGE%%:7 and %%IMAGE%%:latest base containers, but it is not active by default. In order to use systemd, you will need to include text similar to the example Dockerfile below: - -## Dockerfile for systemd base image - -```dockerfile -FROM %%IMAGE%%:7 -ENV container docker -RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ -systemd-tmpfiles-setup.service ] || rm -f $i; done); \ -rm -f /lib/systemd/system/multi-user.target.wants/*;\ -rm -f /etc/systemd/system/*.wants/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ -rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ -rm -f /lib/systemd/system/basic.target.wants/*;\ -rm -f /lib/systemd/system/anaconda.target.wants/*; -VOLUME [ "/sys/fs/cgroup" ] -CMD ["/usr/sbin/init"] -``` - -This Dockerfile deletes a number of unit files which might cause issues. From here, you are ready to build your base image. - -```console -$ docker build --rm -t local/c7-systemd . -``` - -## Example systemd enabled app container - -In order to use the systemd enabled base container created above, you will need to create your `Dockerfile` similar to the one below. - -```dockerfile -FROM local/c7-systemd -RUN yum -y install httpd; yum clean all; systemctl enable httpd.service -EXPOSE 80 -CMD ["/usr/sbin/init"] -``` - -Build this image: - -```console -$ docker build --rm -t local/c7-systemd-httpd . -``` - -## Running a systemd enabled app container - -In order to run a container with systemd, you will need to mount the cgroups volumes from the host. Below is an example command that will run the systemd enabled httpd container created earlier. - -```console -$ docker run -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 local/c7-systemd-httpd -``` - -This container is running with systemd in a limited context, with the cgroups filesystem mounted. There have been reports that if you're using an Ubuntu host, you will need to add `-v /tmp/$(mktemp -d):/run` in addition to the cgroups mount. - -## A note about vsyscall - -CentOS 6 binaries and/or libraries are built to expect some system calls to be accessed via `vsyscall` mappings. Some linux distributions have opted to disable `vsyscall` entirely (opting exclusively for more secure `vdso` mappings), causing segmentation faults. - -If running `docker run --rm -it centos:centos6.7 bash` immediately exits with status code `139`, check to see if your system has disabled vsyscall: - -```console -$ cat /proc/self/maps | egrep 'vdso|vsyscall' -7fffccfcc000-7fffccfce000 r-xp 00000000 00:00 0 [vdso] -$ -``` - -vs - -```console -$ cat /proc/self/maps | egrep 'vdso|vsyscall' -7fffe03fe000-7fffe0400000 r-xp 00000000 00:00 0 [vdso] -ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] -``` - -If you do not see a `vsyscall` mapping, and you need to run a CentOS 6 container, try adding `vsyscall=emulated` to the kernel options in your bootloader - -Further reading : [lwn.net](https://lwn.net/Articles/446528/) diff --git a/centos/deprecated.md b/centos/deprecated.md deleted file mode 100644 index 0d421de8a845..000000000000 --- a/centos/deprecated.md +++ /dev/null @@ -1 +0,0 @@ -This image is no longer supported/maintained (non-EOL tags last updated November 16, 2020, [docker-library/official-images#9102](https://github.com/docker-library/official-images/pull/9102); see also https://www.centos.org/centos-linux-eol/ and [docker-library/docs#2205](https://github.com/docker-library/docs/pull/2205)). Please adjust your usage accordingly. diff --git a/centos/github-repo b/centos/github-repo deleted file mode 100644 index 6fdc93e0b6d6..000000000000 --- a/centos/github-repo +++ /dev/null @@ -1 +0,0 @@ -https://github.com/CentOS/sig-cloud-instance-images diff --git a/centos/issues.md b/centos/issues.md deleted file mode 100644 index e1323c7c9c1a..000000000000 --- a/centos/issues.md +++ /dev/null @@ -1 +0,0 @@ -[https://bugs.centos.org](https://bugs.centos.org) or [GitHub](%%GITHUB-REPO%%/issues) diff --git a/centos/license.md b/centos/license.md deleted file mode 100644 index 6ae999d589b7..000000000000 --- a/centos/license.md +++ /dev/null @@ -1 +0,0 @@ -View [license information](https://www.centos.org/legal/) for the software contained in this image. diff --git a/centos/logo.png b/centos/logo.png deleted file mode 100644 index c74856787c3e..000000000000 Binary files a/centos/logo.png and /dev/null differ diff --git a/centos/maintainer.md b/centos/maintainer.md deleted file mode 100644 index 06be7cefd089..000000000000 --- a/centos/maintainer.md +++ /dev/null @@ -1 +0,0 @@ -[The CentOS Project](%%GITHUB-REPO%%) diff --git a/chronograf/README.md b/chronograf/README.md index c3dcde3f734a..3861859187ac 100644 --- a/chronograf/README.md +++ b/chronograf/README.md @@ -24,14 +24,21 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.7`, `1.7.17`](https://github.com/influxdata/influxdata-docker/blob/653ea422f18802f1d361018a9961af3f70d056e4/chronograf/1.7/Dockerfile) -- [`1.7-alpine`, `1.7.17-alpine`](https://github.com/influxdata/influxdata-docker/blob/653ea422f18802f1d361018a9961af3f70d056e4/chronograf/1.7/alpine/Dockerfile) -- [`1.8`, `1.8.10`](https://github.com/influxdata/influxdata-docker/blob/653ea422f18802f1d361018a9961af3f70d056e4/chronograf/1.8/Dockerfile) -- [`1.8-alpine`, `1.8.10-alpine`](https://github.com/influxdata/influxdata-docker/blob/653ea422f18802f1d361018a9961af3f70d056e4/chronograf/1.8/alpine/Dockerfile) -- [`1.9`, `1.9.4`](https://github.com/influxdata/influxdata-docker/blob/653ea422f18802f1d361018a9961af3f70d056e4/chronograf/1.9/Dockerfile) -- [`1.9-alpine`, `1.9.4-alpine`](https://github.com/influxdata/influxdata-docker/blob/653ea422f18802f1d361018a9961af3f70d056e4/chronograf/1.9/alpine/Dockerfile) -- [`1.10`, `1.10.2`, `latest`](https://github.com/influxdata/influxdata-docker/blob/653ea422f18802f1d361018a9961af3f70d056e4/chronograf/1.10/Dockerfile) -- [`1.10-alpine`, `1.10.2-alpine`, `alpine`](https://github.com/influxdata/influxdata-docker/blob/653ea422f18802f1d361018a9961af3f70d056e4/chronograf/1.10/alpine/Dockerfile) +- [`1.7`, `1.7.17`](https://github.com/influxdata/influxdata-docker/blob/9b7081d7e554666a4f6bb8f93f5dac5e0b3b6722/chronograf/1.7/Dockerfile) + +- [`1.7-alpine`, `1.7.17-alpine`](https://github.com/influxdata/influxdata-docker/blob/9b7081d7e554666a4f6bb8f93f5dac5e0b3b6722/chronograf/1.7/alpine/Dockerfile) + +- [`1.8`, `1.8.10`](https://github.com/influxdata/influxdata-docker/blob/9b7081d7e554666a4f6bb8f93f5dac5e0b3b6722/chronograf/1.8/Dockerfile) + +- [`1.8-alpine`, `1.8.10-alpine`](https://github.com/influxdata/influxdata-docker/blob/9b7081d7e554666a4f6bb8f93f5dac5e0b3b6722/chronograf/1.8/alpine/Dockerfile) + +- [`1.9`, `1.9.4`](https://github.com/influxdata/influxdata-docker/blob/9b7081d7e554666a4f6bb8f93f5dac5e0b3b6722/chronograf/1.9/Dockerfile) + +- [`1.9-alpine`, `1.9.4-alpine`](https://github.com/influxdata/influxdata-docker/blob/9b7081d7e554666a4f6bb8f93f5dac5e0b3b6722/chronograf/1.9/alpine/Dockerfile) + +- [`1.10`, `1.10.7`, `latest`](https://github.com/influxdata/influxdata-docker/blob/9b7081d7e554666a4f6bb8f93f5dac5e0b3b6722/chronograf/1.10/Dockerfile) + +- [`1.10-alpine`, `1.10.7-alpine`, `alpine`](https://github.com/influxdata/influxdata-docker/blob/9b7081d7e554666a4f6bb8f93f5dac5e0b3b6722/chronograf/1.10/alpine/Dockerfile) # Quick reference (cont.) @@ -114,6 +121,10 @@ $ docker run -p 8888:8888 \ Try combining this with Telegraf to get dashboards for your infrastructure within minutes! +#### Running as root + +Starting in v1.10.5, Chronograf no longer run as the root user by default. If a user wants to revert this change they can set `CHRONOGRAF_AS_ROOT=true` as an environment variable. + ## Official Documentation See the [official docs](https://docs.influxdata.com/chronograf/latest/) for information on creating visualizations. diff --git a/chronograf/content.md b/chronograf/content.md index 3270ea9ade43..76f74ec063be 100644 --- a/chronograf/content.md +++ b/chronograf/content.md @@ -60,6 +60,10 @@ $ docker run -p 8888:8888 \ Try combining this with Telegraf to get dashboards for your infrastructure within minutes! +#### Running as root + +Starting in v1.10.5, Chronograf no longer run as the root user by default. If a user wants to revert this change they can set `CHRONOGRAF_AS_ROOT=true` as an environment variable. + ## Official Documentation See the [official docs](https://docs.influxdata.com/chronograf/latest/) for information on creating visualizations. diff --git a/chronograf/metadata.json b/chronograf/metadata.json new file mode 100644 index 000000000000..5f9ae9afb8e1 --- /dev/null +++ b/chronograf/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "monitoring-and-observability" + ] + } +} diff --git a/cirros/README.md b/cirros/README.md index 8062a1ecbfc1..d76fa882bfef 100644 --- a/cirros/README.md +++ b/cirros/README.md @@ -24,7 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`0.6.2`, `0.6`, `0`, `latest`](https://github.com/tianon/docker-brew-cirros/blob/e8833253f108046f977fbcecd7f02170bd20d357/arches/amd64/Dockerfile) +- [`0.6.3`, `0.6`, `0`, `latest`](https://github.com/tianon/docker-brew-cirros/blob/1821a0ca9eaf82280a2e953df56e88ab50178628/arches/amd64/Dockerfile) # Quick reference (cont.) diff --git a/cirros/metadata.json b/cirros/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/cirros/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/clearlinux/README.md b/clearlinux/README.md index 67a0c3dad671..44a17960be65 100644 --- a/clearlinux/README.md +++ b/clearlinux/README.md @@ -24,7 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`latest`, `base`](https://github.com/clearlinux/docker-brew-clearlinux/blob/6fac7bf7d1a9173050938b94b9cb59b24d3402c2/Dockerfile) +- [`latest`, `base`](https://github.com/clearlinux/docker-brew-clearlinux/blob/03e2dcd390233733b398e72ce2382e54b5ef48a4/Dockerfile) # Quick reference (cont.) diff --git a/clearlinux/metadata.json b/clearlinux/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/clearlinux/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/clefos/README-short.txt b/clefos/README-short.txt index 373b8d583546..0442de3b60ac 100644 --- a/clefos/README-short.txt +++ b/clefos/README-short.txt @@ -1 +1 @@ -The official build of ClefOS. +DEPRECATED; The official build of ClefOS. diff --git a/clefos/README.md b/clefos/README.md index de51147b6539..234ff01d241b 100644 --- a/clefos/README.md +++ b/clefos/README.md @@ -14,6 +14,10 @@ WARNING: --> +# **DEPRECATION NOTICE** + +With [the EOL of CentOS 7 (June 30, 2024)](https://www.redhat.com/en/topics/linux/centos-linux-eol), this image/project is [officially deprecated](https://github.com/docker-library/official-images/pull/7964#issuecomment-2253636315). Please adjust your usage accordingly. + # Quick reference - **Maintained by**: @@ -24,7 +28,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`7`, `7.7.1908`, `latest`](https://github.com/nealef/clefos/blob/1aa7d3771b2ced8b8b5cdc9a1a1752d93c56a60e/Dockerfile) +**No supported tags** # Quick reference (cont.) @@ -32,7 +36,7 @@ WARNING: [GitHub](https://github.com/nealef/clefos/issues) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`s390x`](https://hub.docker.com/r/s390x/clefos/) + **No supported architectures** - **Published image artifact details**: [repo-info repo's `repos/clefos/` directory](https://github.com/docker-library/repo-info/blob/master/repos/clefos) ([history](https://github.com/docker-library/repo-info/commits/master/repos/clefos)) diff --git a/clefos/deprecated.md b/clefos/deprecated.md new file mode 100644 index 000000000000..c9f50b6b1c82 --- /dev/null +++ b/clefos/deprecated.md @@ -0,0 +1 @@ +With [the EOL of CentOS 7 (June 30, 2024)](https://www.redhat.com/en/topics/linux/centos-linux-eol), this image/project is [officially deprecated](https://github.com/docker-library/official-images/pull/7964#issuecomment-2253636315). Please adjust your usage accordingly. diff --git a/clefos/metadata.json b/clefos/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/clefos/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/clickhouse/README-short.txt b/clickhouse/README-short.txt new file mode 100644 index 000000000000..d4728984ee6e --- /dev/null +++ b/clickhouse/README-short.txt @@ -0,0 +1 @@ +ClickHouse is the fastest and most resource efficient OSS database for real-time apps and analytics. diff --git a/clickhouse/README.md b/clickhouse/README.md new file mode 100644 index 000000000000..49a0bbff4b51 --- /dev/null +++ b/clickhouse/README.md @@ -0,0 +1,243 @@ + + +# Quick reference + +- **Maintained by**: + [ClickHouse Inc.](https://github.com/ClickHouse/ClickHouse) + +- **Where to get help**: + [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) + +# Supported tags and respective `Dockerfile` links + +- [`latest`, `jammy`, `25.5`, `25.5-jammy`, `25.5.1`, `25.5.1-jammy`, `25.5.1.2782`, `25.5.1.2782-jammy`](https://github.com/ClickHouse/docker-library/blob/8ed25b891e8dd5ca35da19f306b6735b75bae82f/server/25.5.1.2782/Dockerfile.ubuntu) + +- [`25.4`, `25.4-jammy`, `25.4.5`, `25.4.5-jammy`, `25.4.5.24`, `25.4.5.24-jammy`](https://github.com/ClickHouse/docker-library/blob/8ed25b891e8dd5ca35da19f306b6735b75bae82f/server/25.4.5.24/Dockerfile.ubuntu) + +- [`lts`, `lts-jammy`, `25.3`, `25.3-jammy`, `25.3.3`, `25.3.3-jammy`, `25.3.3.42`, `25.3.3.42-jammy`](https://github.com/ClickHouse/docker-library/blob/8ed25b891e8dd5ca35da19f306b6735b75bae82f/server/25.3.3.42/Dockerfile.ubuntu) + +- [`24.8`, `24.8-focal`, `24.8.14`, `24.8.14-focal`, `24.8.14.39`, `24.8.14.39-focal`](https://github.com/ClickHouse/docker-library/blob/8ed25b891e8dd5ca35da19f306b6735b75bae82f/server/24.8.14.39/Dockerfile.ubuntu) + +# Quick reference (cont.) + +- **Where to file issues**: + [https://github.com/ClickHouse/ClickHouse/issues](https://github.com/ClickHouse/ClickHouse/issues?q=) + +- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) + [`amd64`](https://hub.docker.com/r/amd64/clickhouse/), [`arm64v8`](https://hub.docker.com/r/arm64v8/clickhouse/) + +- **Published image artifact details**: + [repo-info repo's `repos/clickhouse/` directory](https://github.com/docker-library/repo-info/blob/master/repos/clickhouse) ([history](https://github.com/docker-library/repo-info/commits/master/repos/clickhouse)) + (image metadata, transfer size, etc) + +- **Image updates**: + [official-images repo's `library/clickhouse` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fclickhouse) + [official-images repo's `library/clickhouse` file](https://github.com/docker-library/official-images/blob/master/library/clickhouse) ([history](https://github.com/docker-library/official-images/commits/master/library/clickhouse)) + +- **Source of this description**: + [docs repo's `clickhouse/` directory](https://github.com/docker-library/docs/tree/master/clickhouse) ([history](https://github.com/docker-library/docs/commits/master/clickhouse)) + +# ClickHouse Server Docker Image + +## What is ClickHouse? + +![logo](https://raw.githubusercontent.com/docker-library/docs/007e3209490145a9855f4825218a9a08753d425b/clickhouse/logo.svg?sanitize=true) + +ClickHouse is an open-source column-oriented DBMS (columnar database management system) for online analytical processing (OLAP) that allows users to generate analytical reports using SQL queries in real-time. + +ClickHouse works 100-1000x faster than traditional database management systems, and processes hundreds of millions to over a billion rows and tens of gigabytes of data per server per second. With a widespread user base around the globe, the technology has received praise for its reliability, ease of use, and fault tolerance. + +For more information and documentation see https://clickhouse.com/. + +## Versions + +- The `latest` tag points to the latest release of the latest stable branch. +- Branch tags like `22.2` point to the latest release of the corresponding branch. +- Full version tags like `22.2.3` and `22.2.3.5` point to the corresponding release. + +### Compatibility + +- The amd64 image requires support for [SSE3 instructions](https://en.wikipedia.org/wiki/SSE3). Virtually all x86 CPUs after 2005 support SSE3. +- The arm64 image requires support for the [ARMv8.2-A architecture](https://en.wikipedia.org/wiki/AArch64#ARMv8.2-A) and additionally the Load-Acquire RCpc register. The register is optional in version ARMv8.2-A and mandatory in [ARMv8.3-A](https://en.wikipedia.org/wiki/AArch64#ARMv8.3-A). Supported in Graviton >=2, Azure and GCP instances. Examples for unsupported devices are Raspberry Pi 4 (ARMv8.0-A) and Jetson AGX Xavier/Orin (ARMv8.2-A). +- Since the Clickhouse 24.11 Ubuntu images started using `ubuntu:22.04` as its base image. It requires docker version >= `20.10.10` containing [patch](https://github.com/moby/moby/commit/977283509f75303bc6612665a04abf76ff1d2468). As a workaround you could use `docker run --security-opt seccomp=unconfined` instead, however that has security implications. + +## How to use this image + +### start server instance + +```bash +docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse +``` + +By default, ClickHouse will be accessible only via the Docker network. See the **networking** section below. + +By default, starting above server instance will be run as the `default` user without password. + +### connect to it from a native client + +```bash +docker run -it --rm --network=container:some-clickhouse-server --entrypoint clickhouse-client clickhouse +# OR +docker exec -it some-clickhouse-server clickhouse-client +``` + +More information about the [ClickHouse client](https://clickhouse.com/docs/interfaces/cli/). + +### connect to it using curl + +```bash +echo "SELECT 'Hello, ClickHouse!'" | docker run -i --rm --network=container:some-clickhouse-server buildpack-deps:curl curl 'http://localhost:8123/?query=' -s --data-binary @- +``` + +More information about the [ClickHouse HTTP Interface](https://clickhouse.com/docs/interfaces/http/). + +### stopping / removing the container + +```bash +docker stop some-clickhouse-server +docker rm some-clickhouse-server +``` + +### networking + +> ⚠️ Note: the predefined user `default` does not have the network access unless the password is set, see "How to create default database and user on starting" and "Managing `default` user" below + +You can expose your ClickHouse running in docker by [mapping a particular port](https://docs.docker.com/config/containers/container-networking/) from inside the container using host ports: + +```bash +docker run -d -p 18123:8123 -p19000:9000 -e CLICKHOUSE_PASSWORD=changeme --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse +echo 'SELECT version()' | curl 'http://localhost:18123/?password=changeme' --data-binary @- +``` + +`22.6.3.35` + +Or by allowing the container to use [host ports directly](https://docs.docker.com/network/host/) using `--network=host` (also allows achieving better network performance): + +```bash +docker run -d --network=host --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse +echo 'SELECT version()' | curl 'http://localhost:8123/' --data-binary @- +``` + +`22.6.3.35` + +> ⚠️ Note: the user `default` in the example above is available only for the localhost requests + +### Volumes + +Typically you may want to mount the following folders inside your container to achieve persistency: + +- `/var/lib/clickhouse/` - main folder where ClickHouse stores the data +- `/var/log/clickhouse-server/` - logs + +```bash +docker run -d \ + -v "$PWD/ch_data:/var/lib/clickhouse/" \ + -v "$PWD/ch_logs:/var/log/clickhouse-server/" \ + --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse +``` + +You may also want to mount: + +- `/etc/clickhouse-server/config.d/*.xml` - files with server configuration adjustments +- `/etc/clickhouse-server/users.d/*.xml` - files with user settings adjustments +- `/docker-entrypoint-initdb.d/` - folder with database initialization scripts (see below). + +### Linux capabilities + +ClickHouse has some advanced functionality, which requires enabling several [Linux capabilities](https://man7.org/linux/man-pages/man7/capabilities.7.html). + +They are optional and can be enabled using the following [docker command-line arguments](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities): + +```bash +docker run -d \ + --cap-add=SYS_NICE --cap-add=NET_ADMIN --cap-add=IPC_LOCK \ + --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse +``` + +Read more in [knowledge base](https://clickhouse.com/docs/knowledgebase/configure_cap_ipc_lock_and_cap_sys_nice_in_docker). + +## Configuration + +The container exposes port 8123 for the [HTTP interface](https://clickhouse.com/docs/interfaces/http_interface/) and port 9000 for the [native client](https://clickhouse.com/docs/interfaces/tcp/). + +ClickHouse configuration is represented with a file "config.xml" ([documentation](https://clickhouse.com/docs/operations/configuration_files/)) + +### Start server instance with custom configuration + +```bash +docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /path/to/your/config.xml:/etc/clickhouse-server/config.xml clickhouse +``` + +### Start server as custom user + +```bash +# $PWD/data/clickhouse should exist and be owned by current user +docker run --rm --user "${UID}:${GID}" --name some-clickhouse-server --ulimit nofile=262144:262144 -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" clickhouse +``` + +When you use the image with local directories mounted, you probably want to specify the user to maintain the proper file ownership. Use the `--user` argument and mount `/var/lib/clickhouse` and `/var/log/clickhouse-server` inside the container. Otherwise, the image will complain and not start. + +### Start server from root (useful in case of enabled user namespace) + +```bash +docker run --rm -e CLICKHOUSE_RUN_AS_ROOT=1 --name clickhouse-server-userns -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" clickhouse +``` + +### How to create default database and user on starting + +Sometimes you may want to create a user (user named `default` is used by default) and database on a container start. You can do it using environment variables `CLICKHOUSE_DB`, `CLICKHOUSE_USER`, `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT` and `CLICKHOUSE_PASSWORD`: + +```bash +docker run --rm -e CLICKHOUSE_DB=my_database -e CLICKHOUSE_USER=username -e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 -e CLICKHOUSE_PASSWORD=password -p 9000:9000/tcp clickhouse +``` + +#### Managing `default` user + +The user `default` has disabled network access by default in the case none of `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`, or `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT` are set. + +There's a way to make `default` user insecurely available by setting environment variable `CLICKHOUSE_SKIP_USER_SETUP` to 1: + +```bash +docker run --rm -e CLICKHOUSE_SKIP_USER_SETUP=1 -p 9000:9000/tcp clickhouse +``` + +## How to extend this image + +To perform additional initialization in an image derived from this one, add one or more `*.sql`, `*.sql.gz`, or `*.sh` scripts under `/docker-entrypoint-initdb.d`. After the entrypoint calls `initdb`, it will run any `*.sql` files, run any executable `*.sh` scripts, and source any non-executable `*.sh` scripts found in that directory to do further initialization before starting the service. +Also, you can provide environment variables `CLICKHOUSE_USER` & `CLICKHOUSE_PASSWORD` that will be used for clickhouse-client during initialization. + +For example, to add an additional user and database, add the following to `/docker-entrypoint-initdb.d/init-db.sh`: + +```bash +#!/bin/bash +set -e + +clickhouse client -n <<-EOSQL + CREATE DATABASE docker; + CREATE TABLE docker.docker (x Int32) ENGINE = Log; +EOSQL +``` + +# License + +View [license information](https://github.com/ClickHouse/ClickHouse/blob/master/LICENSE) for the software contained in this image. + +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). + +Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `clickhouse/` directory](https://github.com/docker-library/repo-info/tree/master/repos/clickhouse). + +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. diff --git a/clickhouse/content.md b/clickhouse/content.md new file mode 100644 index 000000000000..10fb767c0dbb --- /dev/null +++ b/clickhouse/content.md @@ -0,0 +1,180 @@ +# ClickHouse Server Docker Image + +## What is ClickHouse? + +%%LOGO%% + +ClickHouse is an open-source column-oriented DBMS (columnar database management system) for online analytical processing (OLAP) that allows users to generate analytical reports using SQL queries in real-time. + +ClickHouse works 100-1000x faster than traditional database management systems, and processes hundreds of millions to over a billion rows and tens of gigabytes of data per server per second. With a widespread user base around the globe, the technology has received praise for its reliability, ease of use, and fault tolerance. + +For more information and documentation see https://clickhouse.com/. + +## Versions + +- The `latest` tag points to the latest release of the latest stable branch. +- Branch tags like `22.2` point to the latest release of the corresponding branch. +- Full version tags like `22.2.3` and `22.2.3.5` point to the corresponding release. + +### Compatibility + +- The amd64 image requires support for [SSE3 instructions](https://en.wikipedia.org/wiki/SSE3). Virtually all x86 CPUs after 2005 support SSE3. +- The arm64 image requires support for the [ARMv8.2-A architecture](https://en.wikipedia.org/wiki/AArch64#ARMv8.2-A) and additionally the Load-Acquire RCpc register. The register is optional in version ARMv8.2-A and mandatory in [ARMv8.3-A](https://en.wikipedia.org/wiki/AArch64#ARMv8.3-A). Supported in Graviton >=2, Azure and GCP instances. Examples for unsupported devices are Raspberry Pi 4 (ARMv8.0-A) and Jetson AGX Xavier/Orin (ARMv8.2-A). +- Since the Clickhouse 24.11 Ubuntu images started using `ubuntu:22.04` as its base image. It requires docker version >= `20.10.10` containing [patch](https://github.com/moby/moby/commit/977283509f75303bc6612665a04abf76ff1d2468). As a workaround you could use `docker run --security-opt seccomp=unconfined` instead, however that has security implications. + +## How to use this image + +### start server instance + +```bash +docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 %%IMAGE%% +``` + +By default, ClickHouse will be accessible only via the Docker network. See the **networking** section below. + +By default, starting above server instance will be run as the `default` user without password. + +### connect to it from a native client + +```bash +docker run -it --rm --network=container:some-clickhouse-server --entrypoint clickhouse-client %%IMAGE%% +# OR +docker exec -it some-clickhouse-server clickhouse-client +``` + +More information about the [ClickHouse client](https://clickhouse.com/docs/interfaces/cli/). + +### connect to it using curl + +```bash +echo "SELECT 'Hello, ClickHouse!'" | docker run -i --rm --network=container:some-clickhouse-server buildpack-deps:curl curl 'http://localhost:8123/?query=' -s --data-binary @- +``` + +More information about the [ClickHouse HTTP Interface](https://clickhouse.com/docs/interfaces/http/). + +### stopping / removing the container + +```bash +docker stop some-clickhouse-server +docker rm some-clickhouse-server +``` + +### networking + +> ⚠️ Note: the predefined user `default` does not have the network access unless the password is set, see "How to create default database and user on starting" and "Managing `default` user" below + +You can expose your ClickHouse running in docker by [mapping a particular port](https://docs.docker.com/config/containers/container-networking/) from inside the container using host ports: + +```bash +docker run -d -p 18123:8123 -p19000:9000 -e CLICKHOUSE_PASSWORD=changeme --name some-clickhouse-server --ulimit nofile=262144:262144 %%IMAGE%% +echo 'SELECT version()' | curl 'http://localhost:18123/?password=changeme' --data-binary @- +``` + +`22.6.3.35` + +Or by allowing the container to use [host ports directly](https://docs.docker.com/network/host/) using `--network=host` (also allows achieving better network performance): + +```bash +docker run -d --network=host --name some-clickhouse-server --ulimit nofile=262144:262144 %%IMAGE%% +echo 'SELECT version()' | curl 'http://localhost:8123/' --data-binary @- +``` + +`22.6.3.35` + +> ⚠️ Note: the user `default` in the example above is available only for the localhost requests + +### Volumes + +Typically you may want to mount the following folders inside your container to achieve persistency: + +- `/var/lib/clickhouse/` - main folder where ClickHouse stores the data +- `/var/log/clickhouse-server/` - logs + +```bash +docker run -d \ + -v "$PWD/ch_data:/var/lib/clickhouse/" \ + -v "$PWD/ch_logs:/var/log/clickhouse-server/" \ + --name some-clickhouse-server --ulimit nofile=262144:262144 %%IMAGE%% +``` + +You may also want to mount: + +- `/etc/clickhouse-server/config.d/*.xml` - files with server configuration adjustments +- `/etc/clickhouse-server/users.d/*.xml` - files with user settings adjustments +- `/docker-entrypoint-initdb.d/` - folder with database initialization scripts (see below). + +### Linux capabilities + +ClickHouse has some advanced functionality, which requires enabling several [Linux capabilities](https://man7.org/linux/man-pages/man7/capabilities.7.html). + +They are optional and can be enabled using the following [docker command-line arguments](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities): + +```bash +docker run -d \ + --cap-add=SYS_NICE --cap-add=NET_ADMIN --cap-add=IPC_LOCK \ + --name some-clickhouse-server --ulimit nofile=262144:262144 %%IMAGE%% +``` + +Read more in [knowledge base](https://clickhouse.com/docs/knowledgebase/configure_cap_ipc_lock_and_cap_sys_nice_in_docker). + +## Configuration + +The container exposes port 8123 for the [HTTP interface](https://clickhouse.com/docs/interfaces/http_interface/) and port 9000 for the [native client](https://clickhouse.com/docs/interfaces/tcp/). + +ClickHouse configuration is represented with a file "config.xml" ([documentation](https://clickhouse.com/docs/operations/configuration_files/)) + +### Start server instance with custom configuration + +```bash +docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /path/to/your/config.xml:/etc/clickhouse-server/config.xml %%IMAGE%% +``` + +### Start server as custom user + +```bash +# $PWD/data/clickhouse should exist and be owned by current user +docker run --rm --user "${UID}:${GID}" --name some-clickhouse-server --ulimit nofile=262144:262144 -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" %%IMAGE%% +``` + +When you use the image with local directories mounted, you probably want to specify the user to maintain the proper file ownership. Use the `--user` argument and mount `/var/lib/clickhouse` and `/var/log/clickhouse-server` inside the container. Otherwise, the image will complain and not start. + +### Start server from root (useful in case of enabled user namespace) + +```bash +docker run --rm -e CLICKHOUSE_RUN_AS_ROOT=1 --name clickhouse-server-userns -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" %%IMAGE%% +``` + +### How to create default database and user on starting + +Sometimes you may want to create a user (user named `default` is used by default) and database on a container start. You can do it using environment variables `CLICKHOUSE_DB`, `CLICKHOUSE_USER`, `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT` and `CLICKHOUSE_PASSWORD`: + +```bash +docker run --rm -e CLICKHOUSE_DB=my_database -e CLICKHOUSE_USER=username -e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 -e CLICKHOUSE_PASSWORD=password -p 9000:9000/tcp %%IMAGE%% +``` + +#### Managing `default` user + +The user `default` has disabled network access by default in the case none of `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`, or `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT` are set. + +There's a way to make `default` user insecurely available by setting environment variable `CLICKHOUSE_SKIP_USER_SETUP` to 1: + +```bash +docker run --rm -e CLICKHOUSE_SKIP_USER_SETUP=1 -p 9000:9000/tcp %%IMAGE%% +``` + +## How to extend this image + +To perform additional initialization in an image derived from this one, add one or more `*.sql`, `*.sql.gz`, or `*.sh` scripts under `/docker-entrypoint-initdb.d`. After the entrypoint calls `initdb`, it will run any `*.sql` files, run any executable `*.sh` scripts, and source any non-executable `*.sh` scripts found in that directory to do further initialization before starting the service. +Also, you can provide environment variables `CLICKHOUSE_USER` & `CLICKHOUSE_PASSWORD` that will be used for clickhouse-client during initialization. + +For example, to add an additional user and database, add the following to `/docker-entrypoint-initdb.d/init-db.sh`: + +```bash +#!/bin/bash +set -e + +clickhouse client -n <<-EOSQL + CREATE DATABASE docker; + CREATE TABLE docker.docker (x Int32) ENGINE = Log; +EOSQL +``` diff --git a/clickhouse/github-repo b/clickhouse/github-repo new file mode 100644 index 000000000000..70a009ec9588 --- /dev/null +++ b/clickhouse/github-repo @@ -0,0 +1 @@ +https://github.com/ClickHouse/ClickHouse diff --git a/clickhouse/license.md b/clickhouse/license.md new file mode 100644 index 000000000000..6be024edcdec --- /dev/null +++ b/clickhouse/license.md @@ -0,0 +1 @@ +View [license information](https://github.com/ClickHouse/ClickHouse/blob/master/LICENSE) for the software contained in this image. diff --git a/clickhouse/logo.svg b/clickhouse/logo.svg new file mode 100644 index 000000000000..a50dd81a1645 --- /dev/null +++ b/clickhouse/logo.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/clickhouse/maintainer.md b/clickhouse/maintainer.md new file mode 100644 index 000000000000..26c7db1a2934 --- /dev/null +++ b/clickhouse/maintainer.md @@ -0,0 +1 @@ +[ClickHouse Inc.](%%GITHUB-REPO%%) diff --git a/clickhouse/metadata.json b/clickhouse/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/clickhouse/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/clojure/README.md b/clojure/README.md index b7d5e91b2ac1..77dd040d585c 100644 --- a/clojure/README.md +++ b/clojure/README.md @@ -24,79 +24,183 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`latest`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-21/latest/Dockerfile) -- [`temurin-8-boot-2.8.3-bookworm`, `temurin-8-boot-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-8/boot/Dockerfile) -- [`temurin-8-boot-2.8.3-bookworm-slim`, `temurin-8-boot-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-8/boot/Dockerfile) -- [`temurin-8-boot-2.8.3-bullseye`, `temurin-8-boot-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-8/boot/Dockerfile) -- [`temurin-8-boot-2.8.3-bullseye-slim`, `temurin-8-boot-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-8/boot/Dockerfile) -- [`temurin-8-boot-2.8.3-focal`, `temurin-8-boot-focal`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-8-jdk-focal/boot/Dockerfile) -- [`temurin-8-boot`, `temurin-8-boot-2.8.3`, `temurin-8-boot-2.8.3-jammy`, `temurin-8-boot-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-8-jdk-jammy/boot/Dockerfile) -- [`temurin-8-lein-2.10.0-alpine`, `temurin-8-lein-alpine`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-8-jdk-alpine/lein/Dockerfile) -- [`temurin-8-lein-2.10.0-bookworm`, `temurin-8-lein-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-8/lein/Dockerfile) -- [`temurin-8-lein-2.10.0-bookworm-slim`, `temurin-8-lein-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-8/lein/Dockerfile) -- [`temurin-8-lein-2.10.0-bullseye`, `temurin-8-lein-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-8/lein/Dockerfile) -- [`temurin-8-lein-2.10.0-bullseye-slim`, `temurin-8-lein-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-8/lein/Dockerfile) -- [`temurin-8-lein-2.10.0-focal`, `temurin-8-lein-focal`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-8-jdk-focal/lein/Dockerfile) -- [`temurin-8-lein`, `temurin-8-lein-2.10.0`, `temurin-8-lein-2.10.0-jammy`, `temurin-8-lein-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-8-jdk-jammy/lein/Dockerfile) -- [`temurin-8-alpine`, `temurin-8-tools-deps-1.11.1.1413-alpine`, `temurin-8-tools-deps-alpine`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-8-jdk-alpine/tools-deps/Dockerfile) -- [`temurin-8-bookworm`, `temurin-8-tools-deps-1.11.1.1413-bookworm`, `temurin-8-tools-deps-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-8/tools-deps/Dockerfile) -- [`temurin-8-bookworm-slim`, `temurin-8-tools-deps-1.11.1.1413-bookworm-slim`, `temurin-8-tools-deps-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-8/tools-deps/Dockerfile) -- [`temurin-8-bullseye`, `temurin-8-tools-deps-1.11.1.1413-bullseye`, `temurin-8-tools-deps-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-8/tools-deps/Dockerfile) -- [`temurin-8-bullseye-slim`, `temurin-8-tools-deps-1.11.1.1413-bullseye-slim`, `temurin-8-tools-deps-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-8/tools-deps/Dockerfile) -- [`temurin-8-focal`, `temurin-8-tools-deps-1.11.1.1413-focal`, `temurin-8-tools-deps-focal`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-8-jdk-focal/tools-deps/Dockerfile) -- [`temurin-8-jammy`, `temurin-8-tools-deps`, `temurin-8-tools-deps-1.11.1.1413`, `temurin-8-tools-deps-1.11.1.1413-jammy`, `temurin-8-tools-deps-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-8-jdk-jammy/tools-deps/Dockerfile) -- [`temurin-11-boot-2.8.3-bookworm`, `temurin-11-boot-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-11/boot/Dockerfile) -- [`temurin-11-boot-2.8.3-bookworm-slim`, `temurin-11-boot-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-11/boot/Dockerfile) -- [`temurin-11-boot-2.8.3-bullseye`, `temurin-11-boot-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-11/boot/Dockerfile) -- [`temurin-11-boot-2.8.3-bullseye-slim`, `temurin-11-boot-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-11/boot/Dockerfile) -- [`temurin-11-boot-2.8.3-focal`, `temurin-11-boot-focal`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-11-jdk-focal/boot/Dockerfile) -- [`temurin-11-boot`, `temurin-11-boot-2.8.3`, `temurin-11-boot-2.8.3-jammy`, `temurin-11-boot-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-11-jdk-jammy/boot/Dockerfile) -- [`temurin-11-lein-2.10.0-alpine`, `temurin-11-lein-alpine`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-11-jdk-alpine/lein/Dockerfile) -- [`temurin-11-lein-2.10.0-bookworm`, `temurin-11-lein-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-11/lein/Dockerfile) -- [`temurin-11-lein-2.10.0-bookworm-slim`, `temurin-11-lein-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-11/lein/Dockerfile) -- [`temurin-11-lein-2.10.0-bullseye`, `temurin-11-lein-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-11/lein/Dockerfile) -- [`temurin-11-lein-2.10.0-bullseye-slim`, `temurin-11-lein-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-11/lein/Dockerfile) -- [`temurin-11-lein-2.10.0-focal`, `temurin-11-lein-focal`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-11-jdk-focal/lein/Dockerfile) -- [`temurin-11-lein`, `temurin-11-lein-2.10.0`, `temurin-11-lein-2.10.0-jammy`, `temurin-11-lein-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-11-jdk-jammy/lein/Dockerfile) -- [`temurin-11-alpine`, `temurin-11-tools-deps-1.11.1.1413-alpine`, `temurin-11-tools-deps-alpine`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-11-jdk-alpine/tools-deps/Dockerfile) -- [`temurin-11-bookworm`, `temurin-11-tools-deps-1.11.1.1413-bookworm`, `temurin-11-tools-deps-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-11/tools-deps/Dockerfile) -- [`temurin-11-bookworm-slim`, `temurin-11-tools-deps-1.11.1.1413-bookworm-slim`, `temurin-11-tools-deps-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-11/tools-deps/Dockerfile) -- [`temurin-11-bullseye`, `temurin-11-tools-deps-1.11.1.1413-bullseye`, `temurin-11-tools-deps-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-11/tools-deps/Dockerfile) -- [`temurin-11-bullseye-slim`, `temurin-11-tools-deps-1.11.1.1413-bullseye-slim`, `temurin-11-tools-deps-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-11/tools-deps/Dockerfile) -- [`temurin-11-focal`, `temurin-11-tools-deps-1.11.1.1413-focal`, `temurin-11-tools-deps-focal`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-11-jdk-focal/tools-deps/Dockerfile) -- [`temurin-11-jammy`, `temurin-11-tools-deps`, `temurin-11-tools-deps-1.11.1.1413`, `temurin-11-tools-deps-1.11.1.1413-jammy`, `temurin-11-tools-deps-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-11-jdk-jammy/tools-deps/Dockerfile) -- [`temurin-17-boot-2.8.3-bookworm`, `temurin-17-boot-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-17/boot/Dockerfile) -- [`temurin-17-boot-2.8.3-bookworm-slim`, `temurin-17-boot-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-17/boot/Dockerfile) -- [`temurin-17-boot-2.8.3-bullseye`, `temurin-17-boot-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-17/boot/Dockerfile) -- [`temurin-17-boot-2.8.3-bullseye-slim`, `temurin-17-boot-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-17/boot/Dockerfile) -- [`temurin-17-boot-2.8.3-focal`, `temurin-17-boot-focal`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-17-jdk-focal/boot/Dockerfile) -- [`temurin-17-boot`, `temurin-17-boot-2.8.3`, `temurin-17-boot-2.8.3-jammy`, `temurin-17-boot-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-17-jdk-jammy/boot/Dockerfile) -- [`temurin-17-lein-2.10.0-alpine`, `temurin-17-lein-alpine`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-17-jdk-alpine/lein/Dockerfile) -- [`temurin-17-lein-2.10.0-bookworm`, `temurin-17-lein-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-17/lein/Dockerfile) -- [`temurin-17-lein-2.10.0-bookworm-slim`, `temurin-17-lein-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-17/lein/Dockerfile) -- [`temurin-17-lein-2.10.0-bullseye`, `temurin-17-lein-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-17/lein/Dockerfile) -- [`temurin-17-lein-2.10.0-bullseye-slim`, `temurin-17-lein-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-17/lein/Dockerfile) -- [`temurin-17-lein-2.10.0-focal`, `temurin-17-lein-focal`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-17-jdk-focal/lein/Dockerfile) -- [`temurin-17-lein`, `temurin-17-lein-2.10.0`, `temurin-17-lein-2.10.0-jammy`, `temurin-17-lein-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-17-jdk-jammy/lein/Dockerfile) -- [`temurin-17-alpine`, `temurin-17-tools-deps-1.11.1.1413-alpine`, `temurin-17-tools-deps-alpine`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-17-jdk-alpine/tools-deps/Dockerfile) -- [`temurin-17-bookworm`, `temurin-17-tools-deps-1.11.1.1413-bookworm`, `temurin-17-tools-deps-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-17/tools-deps/Dockerfile) -- [`temurin-17-bookworm-slim`, `temurin-17-tools-deps-1.11.1.1413-bookworm-slim`, `temurin-17-tools-deps-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-17/tools-deps/Dockerfile) -- [`temurin-17-bullseye`, `temurin-17-tools-deps-1.11.1.1413-bullseye`, `temurin-17-tools-deps-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-17/tools-deps/Dockerfile) -- [`temurin-17-bullseye-slim`, `temurin-17-tools-deps-1.11.1.1413-bullseye-slim`, `temurin-17-tools-deps-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-17/tools-deps/Dockerfile) -- [`temurin-17-focal`, `temurin-17-tools-deps-1.11.1.1413-focal`, `temurin-17-tools-deps-focal`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-17-jdk-focal/tools-deps/Dockerfile) -- [`temurin-17-jammy`, `temurin-17-tools-deps`, `temurin-17-tools-deps-1.11.1.1413`, `temurin-17-tools-deps-1.11.1.1413-jammy`, `temurin-17-tools-deps-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-17-jdk-jammy/tools-deps/Dockerfile) -- [`temurin-21-lein-2.10.0-alpine`, `temurin-21-lein-alpine`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-21-jdk-alpine/lein/Dockerfile) -- [`lein`, `lein-2.10.0`, `lein-2.10.0-bookworm`, `lein-bookworm`, `temurin-21-lein`, `temurin-21-lein-2.10.0`, `temurin-21-lein-2.10.0-bookworm`, `temurin-21-lein-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-21/lein/Dockerfile) -- [`lein-2.10.0-bookworm-slim`, `lein-bookworm-slim`, `temurin-21-lein-2.10.0-bookworm-slim`, `temurin-21-lein-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-21/lein/Dockerfile) -- [`lein-2.10.0-bullseye`, `lein-bullseye`, `temurin-21-lein-2.10.0-bullseye`, `temurin-21-lein-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-21/lein/Dockerfile) -- [`lein-2.10.0-bullseye-slim`, `lein-bullseye-slim`, `temurin-21-lein-2.10.0-bullseye-slim`, `temurin-21-lein-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-21/lein/Dockerfile) -- [`temurin-21-lein-2.10.0-jammy`, `temurin-21-lein-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-21-jdk-jammy/lein/Dockerfile) -- [`temurin-21-alpine`, `temurin-21-tools-deps-1.11.1.1413-alpine`, `temurin-21-tools-deps-alpine`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-21-jdk-alpine/tools-deps/Dockerfile) -- [`temurin-21-bookworm`, `temurin-21-tools-deps`, `temurin-21-tools-deps-1.11.1.1413`, `temurin-21-tools-deps-1.11.1.1413-bookworm`, `temurin-21-tools-deps-bookworm`, `tools-deps`, `tools-deps-1.11.1.1413`, `tools-deps-1.11.1.1413-bookworm`, `tools-deps-bookworm`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-21/tools-deps/Dockerfile) -- [`temurin-21-bookworm-slim`, `temurin-21-tools-deps-1.11.1.1413-bookworm-slim`, `temurin-21-tools-deps-bookworm-slim`, `tools-deps-1.11.1.1413-bookworm-slim`, `tools-deps-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bookworm-slim-21/tools-deps/Dockerfile) -- [`temurin-21-bullseye`, `temurin-21-tools-deps-1.11.1.1413-bullseye`, `temurin-21-tools-deps-bullseye`, `tools-deps-1.11.1.1413-bullseye`, `tools-deps-bullseye`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-21/tools-deps/Dockerfile) -- [`temurin-21-bullseye-slim`, `temurin-21-tools-deps-1.11.1.1413-bullseye-slim`, `temurin-21-tools-deps-bullseye-slim`, `tools-deps-1.11.1.1413-bullseye-slim`, `tools-deps-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/debian-bullseye-slim-21/tools-deps/Dockerfile) -- [`temurin-21-jammy`, `temurin-21-tools-deps-1.11.1.1413-jammy`, `temurin-21-tools-deps-jammy`](https://github.com/Quantisan/docker-clojure/blob/2e79055146bdcf039bd45b7524ef96a33a9f7761/target/eclipse-temurin-21-jdk-jammy/tools-deps/Dockerfile) +- [`latest`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-21/latest/Dockerfile) + +- [`temurin-8-lein-2.11.2-alpine`, `temurin-8-lein-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-8-jdk-alpine/lein/Dockerfile) + +- [`temurin-8-lein-2.11.2-bookworm`, `temurin-8-lein-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-8/lein/Dockerfile) + +- [`temurin-8-lein-2.11.2-bookworm-slim`, `temurin-8-lein-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-8/lein/Dockerfile) + +- [`temurin-8-lein-2.11.2-bullseye`, `temurin-8-lein-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-8/lein/Dockerfile) + +- [`temurin-8-lein-2.11.2-bullseye-slim`, `temurin-8-lein-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-8/lein/Dockerfile) + +- [`temurin-8-lein-2.11.2-jammy`, `temurin-8-lein-jammy`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-8-jdk-jammy/lein/Dockerfile) + +- [`temurin-8-lein`, `temurin-8-lein-2.11.2`, `temurin-8-lein-2.11.2-noble`, `temurin-8-lein-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-8-jdk-noble/lein/Dockerfile) + +- [`temurin-8-lein-2.11.2-trixie`, `temurin-8-lein-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-8/lein/Dockerfile) + +- [`temurin-8-lein-2.11.2-trixie-slim`, `temurin-8-lein-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-8/lein/Dockerfile) + +- [`temurin-8-alpine`, `temurin-8-tools-deps-1.12.1.1550-alpine`, `temurin-8-tools-deps-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-8-jdk-alpine/tools-deps/Dockerfile) + +- [`temurin-8-bookworm`, `temurin-8-tools-deps-1.12.1.1550-bookworm`, `temurin-8-tools-deps-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-8/tools-deps/Dockerfile) + +- [`temurin-8-bookworm-slim`, `temurin-8-tools-deps-1.12.1.1550-bookworm-slim`, `temurin-8-tools-deps-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-8/tools-deps/Dockerfile) + +- [`temurin-8-bullseye`, `temurin-8-tools-deps-1.12.1.1550-bullseye`, `temurin-8-tools-deps-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-8/tools-deps/Dockerfile) + +- [`temurin-8-bullseye-slim`, `temurin-8-tools-deps-1.12.1.1550-bullseye-slim`, `temurin-8-tools-deps-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-8/tools-deps/Dockerfile) + +- [`temurin-8-jammy`, `temurin-8-tools-deps-1.12.1.1550-jammy`, `temurin-8-tools-deps-jammy`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-8-jdk-jammy/tools-deps/Dockerfile) + +- [`temurin-8-noble`, `temurin-8-tools-deps`, `temurin-8-tools-deps-1.12.1.1550`, `temurin-8-tools-deps-1.12.1.1550-noble`, `temurin-8-tools-deps-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-8-jdk-noble/tools-deps/Dockerfile) + +- [`temurin-8-tools-deps-1.12.1.1550-trixie`, `temurin-8-tools-deps-trixie`, `temurin-8-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-8/tools-deps/Dockerfile) + +- [`temurin-8-tools-deps-1.12.1.1550-trixie-slim`, `temurin-8-tools-deps-trixie-slim`, `temurin-8-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-8/tools-deps/Dockerfile) + +- [`temurin-11-lein-2.11.2-alpine`, `temurin-11-lein-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-11-jdk-alpine/lein/Dockerfile) + +- [`temurin-11-lein-2.11.2-bookworm`, `temurin-11-lein-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-11/lein/Dockerfile) + +- [`temurin-11-lein-2.11.2-bookworm-slim`, `temurin-11-lein-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-11/lein/Dockerfile) + +- [`temurin-11-lein-2.11.2-bullseye`, `temurin-11-lein-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-11/lein/Dockerfile) + +- [`temurin-11-lein-2.11.2-bullseye-slim`, `temurin-11-lein-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-11/lein/Dockerfile) + +- [`temurin-11-lein-2.11.2-jammy`, `temurin-11-lein-jammy`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-11-jdk-jammy/lein/Dockerfile) + +- [`temurin-11-lein`, `temurin-11-lein-2.11.2`, `temurin-11-lein-2.11.2-noble`, `temurin-11-lein-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-11-jdk-noble/lein/Dockerfile) + +- [`temurin-11-lein-2.11.2-trixie`, `temurin-11-lein-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-11/lein/Dockerfile) + +- [`temurin-11-lein-2.11.2-trixie-slim`, `temurin-11-lein-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-11/lein/Dockerfile) + +- [`temurin-11-alpine`, `temurin-11-tools-deps-1.12.1.1550-alpine`, `temurin-11-tools-deps-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-11-jdk-alpine/tools-deps/Dockerfile) + +- [`temurin-11-bookworm`, `temurin-11-tools-deps-1.12.1.1550-bookworm`, `temurin-11-tools-deps-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-11/tools-deps/Dockerfile) + +- [`temurin-11-bookworm-slim`, `temurin-11-tools-deps-1.12.1.1550-bookworm-slim`, `temurin-11-tools-deps-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-11/tools-deps/Dockerfile) + +- [`temurin-11-bullseye`, `temurin-11-tools-deps-1.12.1.1550-bullseye`, `temurin-11-tools-deps-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-11/tools-deps/Dockerfile) + +- [`temurin-11-bullseye-slim`, `temurin-11-tools-deps-1.12.1.1550-bullseye-slim`, `temurin-11-tools-deps-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-11/tools-deps/Dockerfile) + +- [`temurin-11-jammy`, `temurin-11-tools-deps-1.12.1.1550-jammy`, `temurin-11-tools-deps-jammy`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-11-jdk-jammy/tools-deps/Dockerfile) + +- [`temurin-11-noble`, `temurin-11-tools-deps`, `temurin-11-tools-deps-1.12.1.1550`, `temurin-11-tools-deps-1.12.1.1550-noble`, `temurin-11-tools-deps-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-11-jdk-noble/tools-deps/Dockerfile) + +- [`temurin-11-tools-deps-1.12.1.1550-trixie`, `temurin-11-tools-deps-trixie`, `temurin-11-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-11/tools-deps/Dockerfile) + +- [`temurin-11-tools-deps-1.12.1.1550-trixie-slim`, `temurin-11-tools-deps-trixie-slim`, `temurin-11-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-11/tools-deps/Dockerfile) + +- [`temurin-17-lein-2.11.2-alpine`, `temurin-17-lein-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-17-jdk-alpine/lein/Dockerfile) + +- [`temurin-17-lein-2.11.2-bookworm`, `temurin-17-lein-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-17/lein/Dockerfile) + +- [`temurin-17-lein-2.11.2-bookworm-slim`, `temurin-17-lein-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-17/lein/Dockerfile) + +- [`temurin-17-lein-2.11.2-bullseye`, `temurin-17-lein-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-17/lein/Dockerfile) + +- [`temurin-17-lein-2.11.2-bullseye-slim`, `temurin-17-lein-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-17/lein/Dockerfile) + +- [`temurin-17-lein-2.11.2-jammy`, `temurin-17-lein-jammy`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-17-jdk-jammy/lein/Dockerfile) + +- [`temurin-17-lein`, `temurin-17-lein-2.11.2`, `temurin-17-lein-2.11.2-noble`, `temurin-17-lein-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-17-jdk-noble/lein/Dockerfile) + +- [`temurin-17-lein-2.11.2-trixie`, `temurin-17-lein-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-17/lein/Dockerfile) + +- [`temurin-17-lein-2.11.2-trixie-slim`, `temurin-17-lein-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-17/lein/Dockerfile) + +- [`temurin-17-alpine`, `temurin-17-tools-deps-1.12.1.1550-alpine`, `temurin-17-tools-deps-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-17-jdk-alpine/tools-deps/Dockerfile) + +- [`temurin-17-bookworm`, `temurin-17-tools-deps-1.12.1.1550-bookworm`, `temurin-17-tools-deps-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-17/tools-deps/Dockerfile) + +- [`temurin-17-bookworm-slim`, `temurin-17-tools-deps-1.12.1.1550-bookworm-slim`, `temurin-17-tools-deps-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-17/tools-deps/Dockerfile) + +- [`temurin-17-bullseye`, `temurin-17-tools-deps-1.12.1.1550-bullseye`, `temurin-17-tools-deps-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-17/tools-deps/Dockerfile) + +- [`temurin-17-bullseye-slim`, `temurin-17-tools-deps-1.12.1.1550-bullseye-slim`, `temurin-17-tools-deps-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-17/tools-deps/Dockerfile) + +- [`temurin-17-jammy`, `temurin-17-tools-deps-1.12.1.1550-jammy`, `temurin-17-tools-deps-jammy`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-17-jdk-jammy/tools-deps/Dockerfile) + +- [`temurin-17-noble`, `temurin-17-tools-deps`, `temurin-17-tools-deps-1.12.1.1550`, `temurin-17-tools-deps-1.12.1.1550-noble`, `temurin-17-tools-deps-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-17-jdk-noble/tools-deps/Dockerfile) + +- [`temurin-17-tools-deps-1.12.1.1550-trixie`, `temurin-17-tools-deps-trixie`, `temurin-17-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-17/tools-deps/Dockerfile) + +- [`temurin-17-tools-deps-1.12.1.1550-trixie-slim`, `temurin-17-tools-deps-trixie-slim`, `temurin-17-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-17/tools-deps/Dockerfile) + +- [`temurin-21-lein-2.11.2-alpine`, `temurin-21-lein-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-21-jdk-alpine/lein/Dockerfile) + +- [`lein`, `lein-2.11.2`, `lein-2.11.2-bookworm`, `lein-bookworm`, `temurin-21-lein`, `temurin-21-lein-2.11.2`, `temurin-21-lein-2.11.2-bookworm`, `temurin-21-lein-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-21/lein/Dockerfile) + +- [`lein-2.11.2-bookworm-slim`, `lein-bookworm-slim`, `temurin-21-lein-2.11.2-bookworm-slim`, `temurin-21-lein-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-21/lein/Dockerfile) + +- [`lein-2.11.2-bullseye`, `lein-bullseye`, `temurin-21-lein-2.11.2-bullseye`, `temurin-21-lein-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-21/lein/Dockerfile) + +- [`lein-2.11.2-bullseye-slim`, `lein-bullseye-slim`, `temurin-21-lein-2.11.2-bullseye-slim`, `temurin-21-lein-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-21/lein/Dockerfile) + +- [`temurin-21-lein-2.11.2-jammy`, `temurin-21-lein-jammy`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-21-jdk-jammy/lein/Dockerfile) + +- [`temurin-21-lein-2.11.2-noble`, `temurin-21-lein-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-21-jdk-noble/lein/Dockerfile) + +- [`lein-2.11.2-trixie`, `lein-trixie`, `temurin-21-lein-2.11.2-trixie`, `temurin-21-lein-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-21/lein/Dockerfile) + +- [`lein-2.11.2-trixie-slim`, `lein-trixie-slim`, `temurin-21-lein-2.11.2-trixie-slim`, `temurin-21-lein-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-21/lein/Dockerfile) + +- [`temurin-21-alpine`, `temurin-21-tools-deps-1.12.1.1550-alpine`, `temurin-21-tools-deps-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-21-jdk-alpine/tools-deps/Dockerfile) + +- [`temurin-21-bookworm`, `temurin-21-tools-deps`, `temurin-21-tools-deps-1.12.1.1550`, `temurin-21-tools-deps-1.12.1.1550-bookworm`, `temurin-21-tools-deps-bookworm`, `tools-deps`, `tools-deps-1.12.1.1550`, `tools-deps-1.12.1.1550-bookworm`, `tools-deps-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-21/tools-deps/Dockerfile) + +- [`temurin-21-bookworm-slim`, `temurin-21-tools-deps-1.12.1.1550-bookworm-slim`, `temurin-21-tools-deps-bookworm-slim`, `tools-deps-1.12.1.1550-bookworm-slim`, `tools-deps-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-21/tools-deps/Dockerfile) + +- [`temurin-21-bullseye`, `temurin-21-tools-deps-1.12.1.1550-bullseye`, `temurin-21-tools-deps-bullseye`, `tools-deps-1.12.1.1550-bullseye`, `tools-deps-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-21/tools-deps/Dockerfile) + +- [`temurin-21-bullseye-slim`, `temurin-21-tools-deps-1.12.1.1550-bullseye-slim`, `temurin-21-tools-deps-bullseye-slim`, `tools-deps-1.12.1.1550-bullseye-slim`, `tools-deps-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-21/tools-deps/Dockerfile) + +- [`temurin-21-jammy`, `temurin-21-tools-deps-1.12.1.1550-jammy`, `temurin-21-tools-deps-jammy`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-21-jdk-jammy/tools-deps/Dockerfile) + +- [`temurin-21-noble`, `temurin-21-tools-deps-1.12.1.1550-noble`, `temurin-21-tools-deps-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-21-jdk-noble/tools-deps/Dockerfile) + +- [`temurin-21-tools-deps-1.12.1.1550-trixie`, `temurin-21-tools-deps-trixie`, `temurin-21-trixie`, `tools-deps-1.12.1.1550-trixie`, `tools-deps-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-21/tools-deps/Dockerfile) + +- [`temurin-21-tools-deps-1.12.1.1550-trixie-slim`, `temurin-21-tools-deps-trixie-slim`, `temurin-21-trixie-slim`, `tools-deps-1.12.1.1550-trixie-slim`, `tools-deps-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-21/tools-deps/Dockerfile) + +- [`temurin-24-lein-2.11.2-alpine`, `temurin-24-lein-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-24-jdk-alpine/lein/Dockerfile) + +- [`temurin-24-lein`, `temurin-24-lein-2.11.2`, `temurin-24-lein-2.11.2-bookworm`, `temurin-24-lein-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-24/lein/Dockerfile) + +- [`temurin-24-lein-2.11.2-bookworm-slim`, `temurin-24-lein-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-24/lein/Dockerfile) + +- [`temurin-24-lein-2.11.2-bullseye`, `temurin-24-lein-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-24/lein/Dockerfile) + +- [`temurin-24-lein-2.11.2-bullseye-slim`, `temurin-24-lein-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-24/lein/Dockerfile) + +- [`temurin-24-lein-2.11.2-noble`, `temurin-24-lein-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-24-jdk-noble/lein/Dockerfile) + +- [`temurin-24-lein-2.11.2-trixie`, `temurin-24-lein-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-24/lein/Dockerfile) + +- [`temurin-24-lein-2.11.2-trixie-slim`, `temurin-24-lein-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-24/lein/Dockerfile) + +- [`temurin-24-alpine`, `temurin-24-tools-deps-1.12.1.1550-alpine`, `temurin-24-tools-deps-alpine`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-24-jdk-alpine/tools-deps/Dockerfile) + +- [`temurin-24-bookworm`, `temurin-24-tools-deps`, `temurin-24-tools-deps-1.12.1.1550`, `temurin-24-tools-deps-1.12.1.1550-bookworm`, `temurin-24-tools-deps-bookworm`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-24/tools-deps/Dockerfile) + +- [`temurin-24-bookworm-slim`, `temurin-24-tools-deps-1.12.1.1550-bookworm-slim`, `temurin-24-tools-deps-bookworm-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bookworm-slim-24/tools-deps/Dockerfile) + +- [`temurin-24-bullseye`, `temurin-24-tools-deps-1.12.1.1550-bullseye`, `temurin-24-tools-deps-bullseye`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-24/tools-deps/Dockerfile) + +- [`temurin-24-bullseye-slim`, `temurin-24-tools-deps-1.12.1.1550-bullseye-slim`, `temurin-24-tools-deps-bullseye-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-bullseye-slim-24/tools-deps/Dockerfile) + +- [`temurin-24-noble`, `temurin-24-tools-deps-1.12.1.1550-noble`, `temurin-24-tools-deps-noble`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/eclipse-temurin-24-jdk-noble/tools-deps/Dockerfile) + +- [`temurin-24-tools-deps-1.12.1.1550-trixie`, `temurin-24-tools-deps-trixie`, `temurin-24-trixie`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-24/tools-deps/Dockerfile) + +- [`temurin-24-tools-deps-1.12.1.1550-trixie-slim`, `temurin-24-tools-deps-trixie-slim`, `temurin-24-trixie-slim`](https://github.com/Quantisan/docker-clojure/blob/fd0e8957854e7772062fb4e8639d63644106d457/target/debian-trixie-slim-24/tools-deps/Dockerfile) # Quick reference (cont.) @@ -104,7 +208,7 @@ WARNING: [https://github.com/Quantisan/docker-clojure/issues](https://github.com/Quantisan/docker-clojure/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/clojure/), [`arm64v8`](https://hub.docker.com/r/arm64v8/clojure/) + [`amd64`](https://hub.docker.com/r/amd64/clojure/), [`arm64v8`](https://hub.docker.com/r/arm64v8/clojure/), [`ppc64le`](https://hub.docker.com/r/ppc64le/clojure/), [`riscv64`](https://hub.docker.com/r/riscv64/clojure/), [`s390x`](https://hub.docker.com/r/s390x/clojure/) - **Published image artifact details**: [repo-info repo's `repos/clojure/` directory](https://github.com/docker-library/repo-info/blob/master/repos/clojure) ([history](https://github.com/docker-library/repo-info/commits/master/repos/clojure)) @@ -203,13 +307,9 @@ The `clojure` images come in many flavors, each designed for a specific use case 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. -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. - -Some of these tags may have names like focal or jammy 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. - -## `clojure:-slim` +Some of these tags may have names like bookworm, bullseye, or trixie 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. -This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run `clojure`. Unless you are working in an environment where *only* the `clojure` image will be deployed and you have space constraints, we highly recommend using the default image of this repository. +Some of these tags may have names like 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. ## `clojure:-alpine` @@ -219,6 +319,10 @@ This variant is useful when final image size being as small as possible is your 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). +## `clojure:-slim` + +This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run `clojure`. Unless you are working in an environment where *only* the `clojure` image will be deployed and you have space constraints, we highly recommend using the default image of this repository. + # License View [license information](http://clojure.org/license) for the software contained in this image. diff --git a/clojure/metadata.json b/clojure/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/clojure/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/composer/README.md b/composer/README.md index 89e42fb49647..c040a15b1468 100644 --- a/composer/README.md +++ b/composer/README.md @@ -24,12 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`2.6.5`, `2.6`, `2`, `latest`](https://github.com/composer/docker/blob/1659442e2fe548afddf0a7356b6ca0c2348186b4/2.6/Dockerfile) -- [`2.5.8`, `2.5`](https://github.com/composer/docker/blob/9fcccc5a4cf04e73118bb7af3f9c04f61646e1c1/2.5/Dockerfile) -- [`2.4.4`, `2.4`](https://github.com/composer/docker/blob/88e63fbab43e2151b0743a4c6d18a9c59aa9db0c/2.4/Dockerfile) -- [`2.3.10`, `2.3`](https://github.com/composer/docker/blob/88e63fbab43e2151b0743a4c6d18a9c59aa9db0c/2.3/Dockerfile) -- [`2.2.22`, `2.2`, `lts`](https://github.com/composer/docker/blob/355e5023b7b7831a7fe2db057070f8378f91ba35/2.2/Dockerfile) -- [`1.10.27`, `1.10`, `1`](https://github.com/composer/docker/blob/9cac6280bc40c7d606f7fd2dfce0f77fefd056a8/1.10/Dockerfile) +- [`2.2.25`, `2.2`, `lts`](https://github.com/composer/docker/blob/15ee952ef914adfc785fd77e4a0b619401dcc194/lts/Dockerfile) + +- [`1.10.27`, `1.10`, `1`](https://github.com/composer/docker/blob/15ee952ef914adfc785fd77e4a0b619401dcc194/legacy/Dockerfile) + +- [`2.8.9`, `2.8`, `2`, `latest`](https://github.com/composer/docker/blob/100f579f6234b361017ae72b9de677ea04859ab7/latest/Dockerfile) # Quick reference (cont.) @@ -37,7 +36,7 @@ WARNING: [https://github.com/composer/docker/issues](https://github.com/composer/docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/composer/), [`arm32v6`](https://hub.docker.com/r/arm32v6/composer/), [`arm32v7`](https://hub.docker.com/r/arm32v7/composer/), [`arm64v8`](https://hub.docker.com/r/arm64v8/composer/), [`i386`](https://hub.docker.com/r/i386/composer/), [`ppc64le`](https://hub.docker.com/r/ppc64le/composer/), [`s390x`](https://hub.docker.com/r/s390x/composer/) + [`amd64`](https://hub.docker.com/r/amd64/composer/), [`arm32v6`](https://hub.docker.com/r/arm32v6/composer/), [`arm32v7`](https://hub.docker.com/r/arm32v7/composer/), [`arm64v8`](https://hub.docker.com/r/arm64v8/composer/), [`i386`](https://hub.docker.com/r/i386/composer/), [`ppc64le`](https://hub.docker.com/r/ppc64le/composer/), [`riscv64`](https://hub.docker.com/r/riscv64/composer/), [`s390x`](https://hub.docker.com/r/s390x/composer/) - **Published image artifact details**: [repo-info repo's `repos/composer/` directory](https://github.com/docker-library/repo-info/blob/master/repos/composer) ([history](https://github.com/docker-library/repo-info/commits/master/repos/composer)) diff --git a/composer/metadata.json b/composer/metadata.json new file mode 100644 index 000000000000..67e782480585 --- /dev/null +++ b/composer/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "developer-tools" + ] + } +} diff --git a/consul/README-short.txt b/consul/README-short.txt deleted file mode 100644 index 71c626fc5884..000000000000 --- a/consul/README-short.txt +++ /dev/null @@ -1 +0,0 @@ -Consul is a datacenter runtime that provides service discovery, configuration, and orchestration. diff --git a/consul/README.md b/consul/README.md deleted file mode 100644 index 7e09a56a8d42..000000000000 --- a/consul/README.md +++ /dev/null @@ -1,260 +0,0 @@ - - -# **DEPRECATION NOTICE** - -Upcoming in Consul 1.16, we will stop publishing official Dockerhub images and publish only our Verified Publisher images. Users of Docker images should pull from [hashicorp/consul](https://hub.docker.com/r/hashicorp/consul) instead of [consul](https://hub.docker.com/_/consul). Verified Publisher images can be found at https://hub.docker.com/r/hashicorp/consul. - -# Quick reference - -- **Maintained by**: - [HashiCorp](https://github.com/hashicorp/docker-consul) - -- **Where to get help**: - [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) - -# Supported tags and respective `Dockerfile` links - -- [`1.15.4`, `1.15`](https://github.com/hashicorp/docker-consul/blob/aedd0844f06e9eac9c4e130206219b1ff044a8c4/0.X/Dockerfile) -- [`1.14.8`, `1.14`](https://github.com/hashicorp/docker-consul/blob/7c095b8e988517c239526c0137caeb837c490807/0.X/Dockerfile) -- [`1.13.9`, `1.13`](https://github.com/hashicorp/docker-consul/blob/ae00ef4e7ff1cf68afd391838993bc53234cf5e6/0.X/Dockerfile) - -# Quick reference (cont.) - -- **Where to file issues**: - [https://github.com/hashicorp/docker-consul/issues](https://github.com/hashicorp/docker-consul/issues?q=) - -- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/consul/), [`arm32v6`](https://hub.docker.com/r/arm32v6/consul/), [`arm64v8`](https://hub.docker.com/r/arm64v8/consul/), [`i386`](https://hub.docker.com/r/i386/consul/) - -- **Published image artifact details**: - [repo-info repo's `repos/consul/` directory](https://github.com/docker-library/repo-info/blob/master/repos/consul) ([history](https://github.com/docker-library/repo-info/commits/master/repos/consul)) - (image metadata, transfer size, etc) - -- **Image updates**: - [official-images repo's `library/consul` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fconsul) - [official-images repo's `library/consul` file](https://github.com/docker-library/official-images/blob/master/library/consul) ([history](https://github.com/docker-library/official-images/commits/master/library/consul)) - -- **Source of this description**: - [docs repo's `consul/` directory](https://github.com/docker-library/docs/tree/master/consul) ([history](https://github.com/docker-library/docs/commits/master/consul)) - -# Consul - -Consul is a distributed, highly-available, and multi-datacenter aware tool for service discovery, configuration, and orchestration. Consul enables rapid deployment, configuration, and maintenance of service-oriented architectures at massive scale. For more information, please see: - -- [Consul documentation](https://www.consul.io/) -- [Consul on GitHub](https://github.com/hashicorp/consul) - -![logo](https://raw.githubusercontent.com/docker-library/docs/8adb88e1e328c244711742f65319ed4064cff9a2/consul/logo.svg?sanitize=true) - -# Consul and Docker - -Consul has several moving parts so we'll start with a brief introduction to Consul's architecture and then detail how Consul interacts with Docker. Please see the [Consul Architecture](https://www.consul.io/docs/architecture) guide for more detail on all these concepts. - -Each host in a Consul cluster runs the Consul agent, a long running daemon that can be started in client or server mode. Each cluster has at least 1 agent in server mode, and usually 3 or 5 for high availability. The server agents participate in a [consensus protocol](https://www.consul.io/docs/internals/consensus.html), maintain a centralized view of the cluster's state, and respond to queries from other agents in the cluster. The rest of the agents in client mode participate in a [gossip protocol](https://www.consul.io/docs/internals/gossip.html) to discover other agents and check them for failures, and they forward queries about the cluster to the server agents. - -Applications running on a given host communicate only with their local Consul agent, using its HTTP APIs or DNS interface. Services on the host are also registered with the local Consul agent, which syncs the information with the Consul servers. Doing the most basic DNS-based service discovery using Consul, an application queries for `foo.service.consul` and gets a randomly shuffled subset of all the hosts providing service "foo". This allows applications to locate services and balance the load without any intermediate proxies. Several HTTP APIs are also available for applications doing a deeper integration with Consul's service discovery capabilities, as well as its other features such as the key/value store. - -These concepts also apply when running Consul in Docker. Typically, you'll run a single Consul agent container on each host, running alongside the Docker daemon. You'll also need to configure some of the agents as servers (at least 3 for a basic HA setup). Consul should always be run with `--net=host` in Docker because Consul's consensus and gossip protocols are sensitive to delays and packet loss, so the extra layers involved with other networking types are usually undesirable and unnecessary. We will talk more about this below. - -We don't cover Consul's multi-datacenter capability here, but as long as `--net=host` is used, there should be no special considerations for Docker. - -# Using the Container - -We chose Alpine as a lightweight base with a reasonably small surface area for security concerns, but with enough functionality for development, interactive debugging, and useful health, watch, and exec scripts running under Consul in the container. As of Consul 0.7, the image also includes `curl` since it is so commonly used for health checks. - -Consul always runs under [dumb-init](https://github.com/Yelp/dumb-init), which handles reaping zombie processes and forwards signals on to all processes running in the container. We also use [gosu](https://github.com/tianon/gosu) to run Consul as a non-root "consul" user for better security. These binaries are all built by HashiCorp and signed with our [GPG key](https://www.hashicorp.com/security.html), so you can verify the signed package used to build a given base image. - -Running the Consul container with no arguments will give you a Consul server in [development mode](https://www.consul.io/docs/agent/options.html#_dev). The provided entry point script will also look for Consul subcommands and run `consul` as the correct user and with that subcommand. For example, you can execute `docker run consul members` and it will run the `consul members` command inside the container. The entry point also adds some special configuration options as detailed in the sections below when running the `agent` subcommand. Any other command gets `exec`-ed inside the container under `dumb-init`. - -The container exposes `VOLUME /consul/data`, which is a path where Consul will place its persisted state. This isn't used in any way when running in development mode. For client agents, this stores some information about the cluster and the client's health checks in case the container is restarted. For server agents, this stores the client information plus snapshots and data related to the consensus algorithm and other state like Consul's key/value store and catalog. For servers it is highly desirable to keep this volume's data around when restarting containers to recover from outage scenarios. If this is bind mounted then ownership will be changed to the consul user when the container starts. - -The container has a Consul configuration directory set up at `/consul/config` and the agent will load any configuration files placed here by binding a volume or by composing a new image and adding files. Alternatively, configuration can be added by passing the configuration JSON via environment variable `CONSUL_LOCAL_CONFIG`. If this is bind mounted then ownership will be changed to the consul user when the container starts. - -Since Consul is almost always run with `--net=host` in Docker, some care is required when configuring Consul's IP addresses. Consul has the concept of its cluster address as well as its client address. The cluster address is the address at which other Consul agents may contact a given agent. The client address is the address where other processes on the host contact Consul in order to make HTTP or DNS requests. You will typically need to tell Consul what its cluster address is when starting so that it binds to the correct interface and advertises a workable interface to the rest of the Consul agents. You'll see this in the examples below as the `-bind=` argument to Consul. - -The entry point also includes a small utility to look up a client or bind address by interface name. To use this, set the `CONSUL_CLIENT_INTERFACE` and/or `CONSUL_BIND_INTERFACE` environment variables to the name of the interface you'd like Consul to use and a `-client=` and/or `-bind=` argument will be computed and passed to Consul at startup. - -## Running Consul for Development - -```console -$ docker run -d --name=dev-consul -e CONSUL_BIND_INTERFACE=eth0 consul -``` - -This runs a completely in-memory Consul server agent with default bridge networking and no services exposed on the host, which is useful for development but should not be used in production. For example, if that server is running at internal address 172.17.0.2, you can run a three node cluster for development by starting up two more instances and telling them to join the first node. - -```console -$ docker run -d -e CONSUL_BIND_INTERFACE=eth0 consul agent -dev -join=172.17.0.2 -... server 2 starts -$ docker run -d -e CONSUL_BIND_INTERFACE=eth0 consul agent -dev -join=172.17.0.2 -... server 3 starts -``` - -Then we can query for all the members in the cluster by running a Consul CLI command in the first container: - -```console -$ docker exec -t dev-consul consul members -Node Address Status Type Build Protocol DC -579db72c1ae1 172.17.0.3:8301 alive server 0.6.3 2 dc1 -93fe2309ef19 172.17.0.4:8301 alive server 0.6.3 2 dc1 -c9caabfd4c2a 172.17.0.2:8301 alive server 0.6.3 2 dc1 -``` - -Remember that Consul doesn't use the data volume in this mode - once the container stops all of your state will be wiped out, so please don't use this mode for production. Running completely on the bridge network with the development server is useful for testing multiple instances of Consul on a single machine, which is normally difficult to do because of port conflicts. - -Development mode also starts a version of Consul's web UI on port 8500. This can be added to the other Consul configurations by supplying the `-ui` option to Consul on the command line. The web assets are bundled inside the Consul binary in the container. - -## Running Consul Agent in Client Mode - -```console -$ docker run -d --net=host -e 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}' consul agent -bind= -retry-join= -==> Starting Consul agent... -==> Starting Consul agent RPC... -==> Consul agent running! - Node name: 'linode' - Datacenter: 'dc1' - Server: false (bootstrap: false) - Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400) - Cluster Addr: (LAN: 8301, WAN: 8302) - Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false - Atlas: -... -``` - -This runs a Consul client agent sharing the host's network and advertising the external IP address to the rest of the cluster. Note that the agent defaults to binding its client interfaces to 127.0.0.1, which is the host's loopback interface. This would be a good configuration to use if other containers on the host also use `--net=host`, and it also exposes the agent to processes running directly on the host outside a container, such as HashiCorp's Nomad. - -The `-retry-join` parameter specifies the external IP of one other agent in the cluster to use to join at startup. There are several ways to control how an agent joins the cluster, see the [agent configuration](https://www.consul.io/docs/agent/options.html) guide for more details on the `-join`, `-retry-join`, and `-atlas-join` options. - -Note also we've set [`leave_on_terminate`](https://www.consul.io/docs/agent/options.html#leave_on_terminate) using the `CONSUL_LOCAL_CONFIG` environment variable. This is recommended for clients to and will be defaulted to `true` in Consul 0.7 and later, so this will no longer be necessary. - -At startup, the agent will read config JSON files from `/consul/config`. Data will be persisted in the `/consul/data` volume. - -Here are some example queries on a host with an external IP of 66.175.220.234: - -```console -$ curl http://localhost:8500/v1/health/service/consul?pretty -[ - { - "Node": { - "Node": "linode", - "Address": "66.175.220.234", -... -``` - -```console -$ dig @localhost -p 8600 consul.service.consul -; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> @localhost -p 8600 consul.service.consul -; (2 servers found) -;; global options: +cmd -;; Got answer: -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61616 -;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 -;; WARNING: recursion requested but not available - -;; QUESTION SECTION: -;consul.service.consul. IN A - -;; ANSWER SECTION: -consul.service.consul. 0 IN A 66.175.220.234 -... -``` - -If you want to expose the Consul interfaces to other containers via a different network, such as the bridge network, use the `-client` option for Consul: - -```console -docker run -d --net=host consul agent -bind= -client= -retry-join= -==> Starting Consul agent... -==> Starting Consul agent RPC... -==> Consul agent running! - Node name: 'linode' - Datacenter: 'dc1' - Server: false (bootstrap: false) - Client Addr: (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400) - Cluster Addr: (LAN: 8301, WAN: 8302) - Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false - Atlas: -... -``` - -With this configuration, Consul's client interfaces will be bound to the bridge IP and available to other containers on that network, but not on the host network. Note that we still keep the cluster address out on the host network for performance. Consul will also accept the `-client=0.0.0.0` option to bind to all interfaces. - -## Running Consul Agent in Server Mode - -```console -$ docker run -d --net=host -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -server -bind= -retry-join= -bootstrap-expect= -``` - -This runs a Consul server agent sharing the host's network. All of the network considerations and behavior we covered above for the client agent also apply to the server agent. A single server on its own won't be able to form a quorum and will be waiting for other servers to join. - -Just like the client agent, the `-retry-join` parameter specifies the external IP of one other agent in the cluster to use to join at startup. There are several ways to control how an agent joins the cluster, see the [agent configuration](https://www.consul.io/docs/agent/options.html) guide for more details on the `-join`, `-retry-join`, and `-atlas-join` options. The server agent also consumes a `-bootstrap-expect` option that specifies how many server agents to watch for before bootstrapping the cluster for the first time. This provides an easy way to get an orderly startup with a new cluster. See the [agent configuration](https://www.consul.io/docs/agent/options.html) guide for more details on the `-bootstrap` and `-bootstrap-expect` options. - -Note also we've set [`skip_leave_on_interrupt`](https://www.consul.io/docs/agent/options.html#skip_leave_on_interrupt) using the `CONSUL_LOCAL_CONFIG` environment variable. This is recommended for servers and will be defaulted to `true` in Consul 0.7 and later, so this will no longer be necessary. - -At startup, the agent will read config JSON files from `/consul/config`. Data will be persisted in the `/consul/data` volume. - -Once the cluster is bootstrapped and quorum is achieved, you must use care to keep the minimum number of servers operating in order to avoid an outage state for the cluster. The deployment table in the [consensus](https://www.consul.io/docs/internals/consensus.html) guide outlines the number of servers required for different configurations. There's also an [adding/removing servers](https://www.consul.io/docs/guides/servers.html) guide that describes that process, which is relevant to Docker configurations as well. The [outage recovery](https://www.consul.io/docs/guides/outage.html) guide has steps to perform if servers are permanently lost. In general it's best to restart or replace servers one at a time, making sure servers are healthy before proceeding to the next server. - -## Exposing Consul's DNS Server on Port 53 - -By default, Consul's DNS server is exposed on port 8600. Because this is cumbersome to configure with facilities like `resolv.conf`, you may want to expose DNS on port 53. Consul 0.7 and later supports this by setting an environment variable that runs `setcap` on the Consul binary, allowing it to bind to privileged ports. Note that not all Docker storage backends support this feature (notably AUFS). - -Here's an example: - -```console -$ docker run -d --net=host -e 'CONSUL_ALLOW_PRIVILEGED_PORTS=' consul -dns-port=53 -recursor=8.8.8.8 -``` - -This example also includes a recursor configuration that uses Google's DNS servers for non-Consul lookups. You may want to adjust this based on your particular DNS configuration. If you are binding Consul's client interfaces to the host's loopback address, then you should be able to configure your host's `resolv.conf` to route DNS requests to Consul by including "127.0.0.1" as the primary DNS server. This would expose Consul's DNS to all applications running on the host, but due to Docker's built-in DNS server, you can't point to this directly from inside your containers; Docker will issue an error message if you attempt to do this. You must configure Consul to listen on a non-localhost address that is reachable from within other containers. - -Once you bind Consul's client interfaces to the bridge or other network, you can use the `--dns` option in your *other containers* in order for them to use Consul's DNS server, mapped to port 53. Here's an example: - -```console -$ docker run -d --net=host -e 'CONSUL_ALLOW_PRIVILEGED_PORTS=' consul agent -dns-port=53 -recursor=8.8.8.8 -bind= -``` - -Now start another container and point it at Consul's DNS, using the bridge address of the host: - -```console -$ docker run -i --dns= -t ubuntu sh -c "apt-get update && apt-get install -y dnsutils && dig consul.service.consul" -... -;; ANSWER SECTION: -consul.service.consul. 0 IN A 66.175.220.234 -... -``` - -In the example above, adding the bridge address to the host's `/etc/resolv.conf` file should expose it to all containers without running with the `--dns` option. - -## Service Discovery with Containers - -There are several approaches you can use to register services running in containers with Consul. For manual configuration, your containers can use the local agent's APIs to register and deregister themselves, see the [Agent API](https://www.consul.io/docs/agent/http/agent.html) for more details. Another strategy is to create a derived Consul container for each host type which includes JSON config files for Consul to parse at startup, see [Services](https://www.consul.io/docs/agent/services.html) for more information. Both of these approaches are fairly cumbersome, and the configured services may fall out of sync if containers die or additional containers are started. - -If you run your containers under [HashiCorp's Nomad](https://www.nomadproject.io/) scheduler, it has [first class support for Consul](https://www.nomadproject.io/docs/jobspec/servicediscovery.html). The Nomad agent runs on each host alongside the Consul agent. When jobs are scheduled on a given host, the Nomad agent automatically takes care of syncing the Consul agent with the service information. This is very easy to manage, and even services on hosts running outside of Docker containers can be managed by Nomad and registered with Consul. You can find out more about running Docker under Nomad in the [Docker Driver](https://www.nomadproject.io/docs/drivers/docker.html) guide. - -Other open source options include [Registrator](http://gliderlabs.com/registrator/latest/) from Glider Labs and [ContainerPilot](https://www.joyent.com/containerpilot) from Joyent. Registrator works by running a Registrator instance on each host, alongside the Consul agent. Registrator monitors the Docker daemon for container stop and start events, and handles service registration with Consul using the container names and exposed ports as the service information. ContainerPilot manages service registration using tooling running inside the container to register services with Consul on start, manage a Consul TTL health check while running, and deregister services when the container stops. - -## Running Health Checks in Docker Containers - -Consul has the ability to execute health checks inside containers. If the Docker daemon is exposed to the Consul agent and the `DOCKER_HOST` environment variable is set, then checks can be configured with the Docker container ID to execute in. See the [health checks](https://www.consul.io/docs/agent/checks.html) guide for more details. - -# License - -View [license information](https://raw.githubusercontent.com/hashicorp/consul/master/LICENSE) for the software contained in this image. - -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). - -Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `consul/` directory](https://github.com/docker-library/repo-info/tree/master/repos/consul). - -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. diff --git a/consul/content.md b/consul/content.md deleted file mode 100644 index 5535d7a67745..000000000000 --- a/consul/content.md +++ /dev/null @@ -1,197 +0,0 @@ -# Consul - -Consul is a distributed, highly-available, and multi-datacenter aware tool for service discovery, configuration, and orchestration. Consul enables rapid deployment, configuration, and maintenance of service-oriented architectures at massive scale. For more information, please see: - -- [Consul documentation](https://www.consul.io/) -- [Consul on GitHub](https://github.com/hashicorp/consul) - -%%LOGO%% - -# Consul and Docker - -Consul has several moving parts so we'll start with a brief introduction to Consul's architecture and then detail how Consul interacts with Docker. Please see the [Consul Architecture](https://www.consul.io/docs/architecture) guide for more detail on all these concepts. - -Each host in a Consul cluster runs the Consul agent, a long running daemon that can be started in client or server mode. Each cluster has at least 1 agent in server mode, and usually 3 or 5 for high availability. The server agents participate in a [consensus protocol](https://www.consul.io/docs/internals/consensus.html), maintain a centralized view of the cluster's state, and respond to queries from other agents in the cluster. The rest of the agents in client mode participate in a [gossip protocol](https://www.consul.io/docs/internals/gossip.html) to discover other agents and check them for failures, and they forward queries about the cluster to the server agents. - -Applications running on a given host communicate only with their local Consul agent, using its HTTP APIs or DNS interface. Services on the host are also registered with the local Consul agent, which syncs the information with the Consul servers. Doing the most basic DNS-based service discovery using Consul, an application queries for `foo.service.consul` and gets a randomly shuffled subset of all the hosts providing service "foo". This allows applications to locate services and balance the load without any intermediate proxies. Several HTTP APIs are also available for applications doing a deeper integration with Consul's service discovery capabilities, as well as its other features such as the key/value store. - -These concepts also apply when running Consul in Docker. Typically, you'll run a single Consul agent container on each host, running alongside the Docker daemon. You'll also need to configure some of the agents as servers (at least 3 for a basic HA setup). Consul should always be run with `--net=host` in Docker because Consul's consensus and gossip protocols are sensitive to delays and packet loss, so the extra layers involved with other networking types are usually undesirable and unnecessary. We will talk more about this below. - -We don't cover Consul's multi-datacenter capability here, but as long as `--net=host` is used, there should be no special considerations for Docker. - -# Using the Container - -We chose Alpine as a lightweight base with a reasonably small surface area for security concerns, but with enough functionality for development, interactive debugging, and useful health, watch, and exec scripts running under Consul in the container. As of Consul 0.7, the image also includes `curl` since it is so commonly used for health checks. - -Consul always runs under [dumb-init](https://github.com/Yelp/dumb-init), which handles reaping zombie processes and forwards signals on to all processes running in the container. We also use [gosu](https://github.com/tianon/gosu) to run Consul as a non-root "consul" user for better security. These binaries are all built by HashiCorp and signed with our [GPG key](https://www.hashicorp.com/security.html), so you can verify the signed package used to build a given base image. - -Running the Consul container with no arguments will give you a Consul server in [development mode](https://www.consul.io/docs/agent/options.html#_dev). The provided entry point script will also look for Consul subcommands and run `consul` as the correct user and with that subcommand. For example, you can execute `docker run %%IMAGE%% members` and it will run the `consul members` command inside the container. The entry point also adds some special configuration options as detailed in the sections below when running the `agent` subcommand. Any other command gets `exec`-ed inside the container under `dumb-init`. - -The container exposes `VOLUME /consul/data`, which is a path where Consul will place its persisted state. This isn't used in any way when running in development mode. For client agents, this stores some information about the cluster and the client's health checks in case the container is restarted. For server agents, this stores the client information plus snapshots and data related to the consensus algorithm and other state like Consul's key/value store and catalog. For servers it is highly desirable to keep this volume's data around when restarting containers to recover from outage scenarios. If this is bind mounted then ownership will be changed to the consul user when the container starts. - -The container has a Consul configuration directory set up at `/consul/config` and the agent will load any configuration files placed here by binding a volume or by composing a new image and adding files. Alternatively, configuration can be added by passing the configuration JSON via environment variable `CONSUL_LOCAL_CONFIG`. If this is bind mounted then ownership will be changed to the consul user when the container starts. - -Since Consul is almost always run with `--net=host` in Docker, some care is required when configuring Consul's IP addresses. Consul has the concept of its cluster address as well as its client address. The cluster address is the address at which other Consul agents may contact a given agent. The client address is the address where other processes on the host contact Consul in order to make HTTP or DNS requests. You will typically need to tell Consul what its cluster address is when starting so that it binds to the correct interface and advertises a workable interface to the rest of the Consul agents. You'll see this in the examples below as the `-bind=` argument to Consul. - -The entry point also includes a small utility to look up a client or bind address by interface name. To use this, set the `CONSUL_CLIENT_INTERFACE` and/or `CONSUL_BIND_INTERFACE` environment variables to the name of the interface you'd like Consul to use and a `-client=` and/or `-bind=` argument will be computed and passed to Consul at startup. - -## Running Consul for Development - -```console -$ docker run -d --name=dev-consul -e CONSUL_BIND_INTERFACE=eth0 %%IMAGE%% -``` - -This runs a completely in-memory Consul server agent with default bridge networking and no services exposed on the host, which is useful for development but should not be used in production. For example, if that server is running at internal address 172.17.0.2, you can run a three node cluster for development by starting up two more instances and telling them to join the first node. - -```console -$ docker run -d -e CONSUL_BIND_INTERFACE=eth0 %%IMAGE%% agent -dev -join=172.17.0.2 -... server 2 starts -$ docker run -d -e CONSUL_BIND_INTERFACE=eth0 %%IMAGE%% agent -dev -join=172.17.0.2 -... server 3 starts -``` - -Then we can query for all the members in the cluster by running a Consul CLI command in the first container: - -```console -$ docker exec -t dev-consul %%IMAGE%% members -Node Address Status Type Build Protocol DC -579db72c1ae1 172.17.0.3:8301 alive server 0.6.3 2 dc1 -93fe2309ef19 172.17.0.4:8301 alive server 0.6.3 2 dc1 -c9caabfd4c2a 172.17.0.2:8301 alive server 0.6.3 2 dc1 -``` - -Remember that Consul doesn't use the data volume in this mode - once the container stops all of your state will be wiped out, so please don't use this mode for production. Running completely on the bridge network with the development server is useful for testing multiple instances of Consul on a single machine, which is normally difficult to do because of port conflicts. - -Development mode also starts a version of Consul's web UI on port 8500. This can be added to the other Consul configurations by supplying the `-ui` option to Consul on the command line. The web assets are bundled inside the Consul binary in the container. - -## Running Consul Agent in Client Mode - -```console -$ docker run -d --net=host -e 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}' %%IMAGE%% agent -bind= -retry-join= -==> Starting Consul agent... -==> Starting Consul agent RPC... -==> Consul agent running! - Node name: 'linode' - Datacenter: 'dc1' - Server: false (bootstrap: false) - Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400) - Cluster Addr: (LAN: 8301, WAN: 8302) - Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false - Atlas: -... -``` - -This runs a Consul client agent sharing the host's network and advertising the external IP address to the rest of the cluster. Note that the agent defaults to binding its client interfaces to 127.0.0.1, which is the host's loopback interface. This would be a good configuration to use if other containers on the host also use `--net=host`, and it also exposes the agent to processes running directly on the host outside a container, such as HashiCorp's Nomad. - -The `-retry-join` parameter specifies the external IP of one other agent in the cluster to use to join at startup. There are several ways to control how an agent joins the cluster, see the [agent configuration](https://www.consul.io/docs/agent/options.html) guide for more details on the `-join`, `-retry-join`, and `-atlas-join` options. - -Note also we've set [`leave_on_terminate`](https://www.consul.io/docs/agent/options.html#leave_on_terminate) using the `CONSUL_LOCAL_CONFIG` environment variable. This is recommended for clients to and will be defaulted to `true` in Consul 0.7 and later, so this will no longer be necessary. - -At startup, the agent will read config JSON files from `/consul/config`. Data will be persisted in the `/consul/data` volume. - -Here are some example queries on a host with an external IP of 66.175.220.234: - -```console -$ curl http://localhost:8500/v1/health/service/consul?pretty -[ - { - "Node": { - "Node": "linode", - "Address": "66.175.220.234", -... -``` - -```console -$ dig @localhost -p 8600 consul.service.consul -; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> @localhost -p 8600 consul.service.consul -; (2 servers found) -;; global options: +cmd -;; Got answer: -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61616 -;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 -;; WARNING: recursion requested but not available - -;; QUESTION SECTION: -;consul.service.consul. IN A - -;; ANSWER SECTION: -consul.service.consul. 0 IN A 66.175.220.234 -... -``` - -If you want to expose the Consul interfaces to other containers via a different network, such as the bridge network, use the `-client` option for Consul: - -```console -docker run -d --net=host %%IMAGE%% agent -bind= -client= -retry-join= -==> Starting Consul agent... -==> Starting Consul agent RPC... -==> Consul agent running! - Node name: 'linode' - Datacenter: 'dc1' - Server: false (bootstrap: false) - Client Addr: (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400) - Cluster Addr: (LAN: 8301, WAN: 8302) - Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false - Atlas: -... -``` - -With this configuration, Consul's client interfaces will be bound to the bridge IP and available to other containers on that network, but not on the host network. Note that we still keep the cluster address out on the host network for performance. Consul will also accept the `-client=0.0.0.0` option to bind to all interfaces. - -## Running Consul Agent in Server Mode - -```console -$ docker run -d --net=host -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' %%IMAGE%% agent -server -bind= -retry-join= -bootstrap-expect= -``` - -This runs a Consul server agent sharing the host's network. All of the network considerations and behavior we covered above for the client agent also apply to the server agent. A single server on its own won't be able to form a quorum and will be waiting for other servers to join. - -Just like the client agent, the `-retry-join` parameter specifies the external IP of one other agent in the cluster to use to join at startup. There are several ways to control how an agent joins the cluster, see the [agent configuration](https://www.consul.io/docs/agent/options.html) guide for more details on the `-join`, `-retry-join`, and `-atlas-join` options. The server agent also consumes a `-bootstrap-expect` option that specifies how many server agents to watch for before bootstrapping the cluster for the first time. This provides an easy way to get an orderly startup with a new cluster. See the [agent configuration](https://www.consul.io/docs/agent/options.html) guide for more details on the `-bootstrap` and `-bootstrap-expect` options. - -Note also we've set [`skip_leave_on_interrupt`](https://www.consul.io/docs/agent/options.html#skip_leave_on_interrupt) using the `CONSUL_LOCAL_CONFIG` environment variable. This is recommended for servers and will be defaulted to `true` in Consul 0.7 and later, so this will no longer be necessary. - -At startup, the agent will read config JSON files from `/consul/config`. Data will be persisted in the `/consul/data` volume. - -Once the cluster is bootstrapped and quorum is achieved, you must use care to keep the minimum number of servers operating in order to avoid an outage state for the cluster. The deployment table in the [consensus](https://www.consul.io/docs/internals/consensus.html) guide outlines the number of servers required for different configurations. There's also an [adding/removing servers](https://www.consul.io/docs/guides/servers.html) guide that describes that process, which is relevant to Docker configurations as well. The [outage recovery](https://www.consul.io/docs/guides/outage.html) guide has steps to perform if servers are permanently lost. In general it's best to restart or replace servers one at a time, making sure servers are healthy before proceeding to the next server. - -## Exposing Consul's DNS Server on Port 53 - -By default, Consul's DNS server is exposed on port 8600. Because this is cumbersome to configure with facilities like `resolv.conf`, you may want to expose DNS on port 53. Consul 0.7 and later supports this by setting an environment variable that runs `setcap` on the Consul binary, allowing it to bind to privileged ports. Note that not all Docker storage backends support this feature (notably AUFS). - -Here's an example: - -```console -$ docker run -d --net=host -e 'CONSUL_ALLOW_PRIVILEGED_PORTS=' %%IMAGE%% -dns-port=53 -recursor=8.8.8.8 -``` - -This example also includes a recursor configuration that uses Google's DNS servers for non-Consul lookups. You may want to adjust this based on your particular DNS configuration. If you are binding Consul's client interfaces to the host's loopback address, then you should be able to configure your host's `resolv.conf` to route DNS requests to Consul by including "127.0.0.1" as the primary DNS server. This would expose Consul's DNS to all applications running on the host, but due to Docker's built-in DNS server, you can't point to this directly from inside your containers; Docker will issue an error message if you attempt to do this. You must configure Consul to listen on a non-localhost address that is reachable from within other containers. - -Once you bind Consul's client interfaces to the bridge or other network, you can use the `--dns` option in your *other containers* in order for them to use Consul's DNS server, mapped to port 53. Here's an example: - -```console -$ docker run -d --net=host -e 'CONSUL_ALLOW_PRIVILEGED_PORTS=' %%IMAGE%% agent -dns-port=53 -recursor=8.8.8.8 -bind= -``` - -Now start another container and point it at Consul's DNS, using the bridge address of the host: - -```console -$ docker run -i --dns= -t ubuntu sh -c "apt-get update && apt-get install -y dnsutils && dig consul.service.consul" -... -;; ANSWER SECTION: -consul.service.consul. 0 IN A 66.175.220.234 -... -``` - -In the example above, adding the bridge address to the host's `/etc/resolv.conf` file should expose it to all containers without running with the `--dns` option. - -## Service Discovery with Containers - -There are several approaches you can use to register services running in containers with Consul. For manual configuration, your containers can use the local agent's APIs to register and deregister themselves, see the [Agent API](https://www.consul.io/docs/agent/http/agent.html) for more details. Another strategy is to create a derived Consul container for each host type which includes JSON config files for Consul to parse at startup, see [Services](https://www.consul.io/docs/agent/services.html) for more information. Both of these approaches are fairly cumbersome, and the configured services may fall out of sync if containers die or additional containers are started. - -If you run your containers under [HashiCorp's Nomad](https://www.nomadproject.io/) scheduler, it has [first class support for Consul](https://www.nomadproject.io/docs/jobspec/servicediscovery.html). The Nomad agent runs on each host alongside the Consul agent. When jobs are scheduled on a given host, the Nomad agent automatically takes care of syncing the Consul agent with the service information. This is very easy to manage, and even services on hosts running outside of Docker containers can be managed by Nomad and registered with Consul. You can find out more about running Docker under Nomad in the [Docker Driver](https://www.nomadproject.io/docs/drivers/docker.html) guide. - -Other open source options include [Registrator](http://gliderlabs.com/registrator/latest/) from Glider Labs and [ContainerPilot](https://www.joyent.com/containerpilot) from Joyent. Registrator works by running a Registrator instance on each host, alongside the Consul agent. Registrator monitors the Docker daemon for container stop and start events, and handles service registration with Consul using the container names and exposed ports as the service information. ContainerPilot manages service registration using tooling running inside the container to register services with Consul on start, manage a Consul TTL health check while running, and deregister services when the container stops. - -## Running Health Checks in Docker Containers - -Consul has the ability to execute health checks inside containers. If the Docker daemon is exposed to the Consul agent and the `DOCKER_HOST` environment variable is set, then checks can be configured with the Docker container ID to execute in. See the [health checks](https://www.consul.io/docs/agent/checks.html) guide for more details. diff --git a/consul/deprecated.md b/consul/deprecated.md deleted file mode 100644 index 5791985d062e..000000000000 --- a/consul/deprecated.md +++ /dev/null @@ -1 +0,0 @@ -Upcoming in Consul 1.16, we will stop publishing official Dockerhub images and publish only our Verified Publisher images. Users of Docker images should pull from [hashicorp/consul](https://hub.docker.com/r/hashicorp/consul) instead of [consul](https://hub.docker.com/_/consul). Verified Publisher images can be found at https://hub.docker.com/r/hashicorp/consul. diff --git a/consul/github-repo b/consul/github-repo deleted file mode 100644 index d3aa632b633f..000000000000 --- a/consul/github-repo +++ /dev/null @@ -1 +0,0 @@ -https://github.com/hashicorp/docker-consul diff --git a/consul/license.md b/consul/license.md deleted file mode 100644 index d565b3812251..000000000000 --- a/consul/license.md +++ /dev/null @@ -1 +0,0 @@ -View [license information](https://raw.githubusercontent.com/hashicorp/consul/master/LICENSE) for the software contained in this image. diff --git a/consul/logo.svg b/consul/logo.svg deleted file mode 100644 index 94c38977d8d9..000000000000 --- a/consul/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/consul/maintainer.md b/consul/maintainer.md deleted file mode 120000 index ef4100e019a3..000000000000 --- a/consul/maintainer.md +++ /dev/null @@ -1 +0,0 @@ -../.common-templates/maintainer-hashicorp.md \ No newline at end of file diff --git a/convertigo/README.md b/convertigo/README.md index 18cd8a4d0eb6..d4997579dd87 100644 --- a/convertigo/README.md +++ b/convertigo/README.md @@ -24,7 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.2.3`, `8.2`, `latest`](https://github.com/convertigo/convertigo/blob/4f29a87627e16e9961f0795d59ee4540d76a5b3c/docker/default/Dockerfile) +- [`8.3.7`, `8.3`, `latest`](https://github.com/convertigo/convertigo/blob/3445d12dfad08b98ad476a57ce7d3c4047652832/docker/default/Dockerfile) # Quick reference (cont.) @@ -32,7 +32,7 @@ WARNING: [https://github.com/convertigo/docker/issues](https://github.com/convertigo/docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/convertigo/), [`arm32v7`](https://hub.docker.com/r/arm32v7/convertigo/), [`arm64v8`](https://hub.docker.com/r/arm64v8/convertigo/) + [`amd64`](https://hub.docker.com/r/amd64/convertigo/), [`arm64v8`](https://hub.docker.com/r/arm64v8/convertigo/) - **Published image artifact details**: [repo-info repo's `repos/convertigo/` directory](https://github.com/docker-library/repo-info/blob/master/repos/convertigo) ([history](https://github.com/docker-library/repo-info/commits/master/repos/convertigo)) @@ -50,7 +50,7 @@ WARNING: Convertigo is an open source fullstack Low Code & No Code platform. The platform is used to build Enterprise Web & Mobile apps in a few days. Convertigo platform is composed of several components: 1. **Convertigo Server**: The back-end server part. Handles back-end connectors, micro-services execution, offline data device synchronization and serves Web & Mobile Web apps. Runs as a Docker container with the `convertigo` image -2. **Convertigo Studio**: Runs on a Windows or a MacOS workstation, Eclipse based IDE, used to program Back-end micro-services workflows and use the "Mobile Builder" edition to build Mobile & Web apps UIs in a MXDP (Multi eXperience Development Platform) Low code mode. Can be directly downloaded from [Sourceforge.net](https://sourceforge.net/projects/convertigo/files/latest/download) +2. **Convertigo Studio**: Runs on a Windows or a MacOS workstation, Eclipse based IDE, used to program Back-end micro-services workflows and use the "Mobile Builder" edition to build Mobile & Web apps UIs in a MXDP (Multi eXperience Development Platform) Low code mode. Can be directly downloaded from [Convertigo](https://www.convertigo.com/get-started-page) 3. **Convertigo NoCode Studio**: The No Code App Builder to build form based apps as PWAs or Web applications with a Web Based NoCode studio intented for non technical developpers (Citizen Developpers) Convertigo Community edition brought to you by Convertigo SA (Paris & San Francisco). The platform is currently used by more than 100K developers worldwide, building enterprise class mobile apps. @@ -312,15 +312,25 @@ The default `DISABLE_SUDO` value is **empty** and can be defined this way: $ docker run -d --name C8O -e DISABLE_SUDO=true -p 28080:28080 convertigo ``` -## Pre configurated Docker compose stack +## `ENABLE_JDWP_DEBUG` Environment variable -You can use this [stack](https://github.com/convertigo/docker/blob/master/compose/mbaas/docker-compose.yml) to run a complete Convertigo Low Code server with FullSync repository and MySQL analytics in a few command lines. +Convertigo operates using the JVM (Java Virtual Machine). To enable remote debugging of the JVM, it's necessary to start it with specific options. By default, this configuration is not enabled. However, if you wish to automatically activate remote debugging over the JDWP port 8000, set the `ENABLE_JDWP_DEBUG` value to **true**. + +The default `ENABLE_JDWP_DEBUG` value is **false** and can be defined this way: + +```console +$ docker run -d –name C8O -e ENABLE_JDWP_DEBUG=true -p 28080:28080 convertigo +``` + +## Pre-configurated Docker Compose file + +You can use [this Docker Compose file](https://github.com/convertigo/docker/blob/master/compose/mbaas/docker-compose.yml) to run a complete Convertigo Low Code server with FullSync repository and MySQL analytics in a few command lines. ```console $ mkdir c8oMBaaS $ cd c8oMBaaS $ wget https://raw.githubusercontent.com/convertigo/docker/master/compose/mbaas/docker-compose.yml -$ docker-compose up -d +$ docker compose up -d ``` # License diff --git a/convertigo/content.md b/convertigo/content.md index 72718def1847..4e0df74a3371 100644 --- a/convertigo/content.md +++ b/convertigo/content.md @@ -3,7 +3,7 @@ Convertigo is an open source fullstack Low Code & No Code platform. The platform is used to build Enterprise Web & Mobile apps in a few days. Convertigo platform is composed of several components: 1. **Convertigo Server**: The back-end server part. Handles back-end connectors, micro-services execution, offline data device synchronization and serves Web & Mobile Web apps. Runs as a Docker container with the `convertigo` image -2. **Convertigo Studio**: Runs on a Windows or a MacOS workstation, Eclipse based IDE, used to program Back-end micro-services workflows and use the "Mobile Builder" edition to build Mobile & Web apps UIs in a MXDP (Multi eXperience Development Platform) Low code mode. Can be directly downloaded from [Sourceforge.net](https://sourceforge.net/projects/convertigo/files/latest/download) +2. **Convertigo Studio**: Runs on a Windows or a MacOS workstation, Eclipse based IDE, used to program Back-end micro-services workflows and use the "Mobile Builder" edition to build Mobile & Web apps UIs in a MXDP (Multi eXperience Development Platform) Low code mode. Can be directly downloaded from [Convertigo](https://www.convertigo.com/get-started-page) 3. **Convertigo NoCode Studio**: The No Code App Builder to build form based apps as PWAs or Web applications with a Web Based NoCode studio intented for non technical developpers (Citizen Developpers) Convertigo Community edition brought to you by Convertigo SA (Paris & San Francisco). The platform is currently used by more than 100K developers worldwide, building enterprise class mobile apps. @@ -265,13 +265,23 @@ The default `DISABLE_SUDO` value is **empty** and can be defined this way: $ docker run -d --name C8O -e DISABLE_SUDO=true -p 28080:28080 %%IMAGE%% ``` -## Pre configurated Docker compose stack +## `ENABLE_JDWP_DEBUG` Environment variable -You can use this [stack](https://github.com/convertigo/docker/blob/master/compose/mbaas/docker-compose.yml) to run a complete Convertigo Low Code server with FullSync repository and MySQL analytics in a few command lines. +Convertigo operates using the JVM (Java Virtual Machine). To enable remote debugging of the JVM, it's necessary to start it with specific options. By default, this configuration is not enabled. However, if you wish to automatically activate remote debugging over the JDWP port 8000, set the `ENABLE_JDWP_DEBUG` value to **true**. + +The default `ENABLE_JDWP_DEBUG` value is **false** and can be defined this way: + +```console +$ docker run -d –name C8O -e ENABLE_JDWP_DEBUG=true -p 28080:28080 %%IMAGE%% +``` + +## Pre-configurated Docker Compose file + +You can use [this Docker Compose file](https://github.com/convertigo/docker/blob/master/compose/mbaas/docker-compose.yml) to run a complete Convertigo Low Code server with FullSync repository and MySQL analytics in a few command lines. ```console $ mkdir c8oMBaaS $ cd c8oMBaaS $ wget https://raw.githubusercontent.com/convertigo/docker/master/compose/mbaas/docker-compose.yml -$ docker-compose up -d +$ docker compose up -d ``` diff --git a/convertigo/metadata.json b/convertigo/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/convertigo/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/couchbase/README.md b/couchbase/README.md index a95229b0d2d4..7511e0a5e12c 100644 --- a/couchbase/README.md +++ b/couchbase/README.md @@ -24,14 +24,45 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`7.2.3`, `enterprise-7.2.3`, `enterprise`, `latest`](https://github.com/couchbase/docker/blob/3a446520433f63e3d270f01063b14cb6b6ade12a/enterprise/couchbase-server/7.2.3/Dockerfile) -- [`community-7.2.2`, `community`](https://github.com/couchbase/docker/blob/855d163127ee5e4bc6854714ecd6911f70f27906/community/couchbase-server/7.2.2/Dockerfile) -- [`7.1.6`, `enterprise-7.1.6`](https://github.com/couchbase/docker/blob/3b28b68159ef2e9007a1493c17e768fbb4837358/enterprise/couchbase-server/7.1.6/Dockerfile) -- [`community-7.1.1`](https://github.com/couchbase/docker/blob/bfbb82c084ca3ada6252afbbcb3ca94bb65f1e58/community/couchbase-server/7.1.1/Dockerfile) -- [`7.0.5`, `enterprise-7.0.5`](https://github.com/couchbase/docker/blob/ca816b6ffa5c36007bd4b3386ec24df081a00ea0/enterprise/couchbase-server/7.0.5/Dockerfile) -- [`community-7.0.2`](https://github.com/couchbase/docker/blob/aec4494ab5280caf567997d72714f57572a6315b/community/couchbase-server/7.0.2/Dockerfile) -- [`6.6.6`, `enterprise-6.6.6`](https://github.com/couchbase/docker/blob/8398e79a15da9eef613d0a781ec136a458ea128c/enterprise/couchbase-server/6.6.6/Dockerfile) -- [`community-6.6.0`](https://github.com/couchbase/docker/blob/aad4aa9714578906c0c993121654eaeba0bd907c/community/couchbase-server/6.6.0/Dockerfile) +- [`7.6.6`, `enterprise`, `enterprise-7.6.6`, `latest`](https://github.com/couchbase/docker/blob/9ce3cbc835dd4e072943ac7878aa7f87d6b95178/enterprise/couchbase-server/7.6.6/Dockerfile) + +- [`7.6.5`, `enterprise-7.6.5`](https://github.com/couchbase/docker/blob/ec16abff6f0551ced6c771bd5606a4392379dd31/enterprise/couchbase-server/7.6.5/Dockerfile) + +- [`7.6.4`, `enterprise-7.6.4`](https://github.com/couchbase/docker/blob/9990e2cfabc94b37607e5666d9ef1eab69a397a6/enterprise/couchbase-server/7.6.4/Dockerfile) + +- [`7.6.3`, `enterprise-7.6.3`](https://github.com/couchbase/docker/blob/553d1baa4aa90fe506e1d7bcdf4daec387a110fe/enterprise/couchbase-server/7.6.3/Dockerfile) + +- [`7.6.2`, `enterprise-7.6.2`](https://github.com/couchbase/docker/blob/ce13f602d2c95f76835c67a8855d5e73480973a6/enterprise/couchbase-server/7.6.2/Dockerfile) + +- [`community`, `community-7.6.2`](https://github.com/couchbase/docker/blob/3f81af158b7f307e42f8c42ceaf7657b2690bfca/community/couchbase-server/7.6.2/Dockerfile) + +- [`7.6.1`, `enterprise-7.6.1`](https://github.com/couchbase/docker/blob/966143f937bfe6979b7c09b86684004fdd21e5b8/enterprise/couchbase-server/7.6.1/Dockerfile) + +- [`community-7.6.1`](https://github.com/couchbase/docker/blob/a18464c9b23efba391317fd21f898bf64dff6ec1/community/couchbase-server/7.6.1/Dockerfile) + +- [`7.6.0`, `enterprise-7.6.0`](https://github.com/couchbase/docker/blob/9bdcf41deedd86da4c71347ffeea350a9895d816/enterprise/couchbase-server/7.6.0/Dockerfile) + +- [`community-7.6.0`](https://github.com/couchbase/docker/blob/6d669d0e34e6990b43c1b91ea74720235c96c4ac/community/couchbase-server/7.6.0/Dockerfile) + +- [`7.2.7`, `enterprise-7.2.7`](https://github.com/couchbase/docker/blob/23887cae4fd6ce054f383d524a7975d2e3a6b72e/enterprise/couchbase-server/7.2.7/Dockerfile) + +- [`7.2.6`, `enterprise-7.2.6`](https://github.com/couchbase/docker/blob/181af64dcbedc1abf6e0916d9f5373cf1c18cb6e/enterprise/couchbase-server/7.2.6/Dockerfile) + +- [`7.2.5`, `enterprise-7.2.5`](https://github.com/couchbase/docker/blob/94d97d9eea3d4057846be28f319940927d5166cb/enterprise/couchbase-server/7.2.5/Dockerfile) + +- [`7.2.4`, `enterprise-7.2.4`](https://github.com/couchbase/docker/blob/15c1c3c0b4717a8b23ef7962f3fde28fe68e4311/enterprise/couchbase-server/7.2.4/Dockerfile) + +- [`community-7.2.4`](https://github.com/couchbase/docker/blob/7c8453ef8584ff18f7b6c052828758693af4f72c/community/couchbase-server/7.2.4/Dockerfile) + +- [`7.2.3`, `enterprise-7.2.3`](https://github.com/couchbase/docker/blob/b54049418018144369816d18c63d9bf76e34bc9f/enterprise/couchbase-server/7.2.3/Dockerfile) + +- [`7.2.2`, `enterprise-7.2.2`](https://github.com/couchbase/docker/blob/3515fb617a469a5f46d492cf6910dddff8efb825/enterprise/couchbase-server/7.2.2/Dockerfile) + +- [`community-7.2.2`](https://github.com/couchbase/docker/blob/c7a25ac7f38a81a465aa97f1a1d753a6c579954f/community/couchbase-server/7.2.2/Dockerfile) + +- [`7.2.0`, `enterprise-7.2.0`](https://github.com/couchbase/docker/blob/4e769975179dc4e5bf4138349818bc8a0e191c9f/enterprise/couchbase-server/7.2.0/Dockerfile) + +- [`community-7.2.0`](https://github.com/couchbase/docker/blob/71596d088ce2bc0218418187ac40ffccb08dbc36/community/couchbase-server/7.2.0/Dockerfile) # Quick reference (cont.) diff --git a/couchbase/metadata.json b/couchbase/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/couchbase/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/couchdb/README.md b/couchdb/README.md index 2da2885a3b19..5f3d22b22818 100644 --- a/couchdb/README.md +++ b/couchdb/README.md @@ -24,10 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`latest`, `3.3.2`, `3.3`, `3`](https://github.com/apache/couchdb-docker/blob/b616800e739db18c19e6a8b4131528157f945bcd/3.3.2/Dockerfile) -- [`3.2.3`, `3.2`](https://github.com/apache/couchdb-docker/blob/b616800e739db18c19e6a8b4131528157f945bcd/3.2.3/Dockerfile) -- [`3.1.2`, `3.1`](https://github.com/apache/couchdb-docker/blob/b616800e739db18c19e6a8b4131528157f945bcd/3.1.2/Dockerfile) -- [`2.3.1`, `2.3`, `2`](https://github.com/apache/couchdb-docker/blob/b616800e739db18c19e6a8b4131528157f945bcd/2.3.1/Dockerfile) +- [`latest`, `3.5.0`, `3.5`, `3`](https://github.com/apache/couchdb-docker/blob/2660034027fec97097f88afcc6f8a4416c364b24/3.5.0/Dockerfile) + +- [`3.5.0-nouveau`, `3.5-nouveau`, `3-nouveau`](https://github.com/apache/couchdb-docker/blob/2660034027fec97097f88afcc6f8a4416c364b24/3.5.0-nouveau/Dockerfile) + +- [`3.4.3`, `3.4`](https://github.com/apache/couchdb-docker/blob/2660034027fec97097f88afcc6f8a4416c364b24/3.4.3/Dockerfile) + +- [`3.4.3-nouveau`, `3.4-nouveau`](https://github.com/apache/couchdb-docker/blob/2660034027fec97097f88afcc6f8a4416c364b24/3.4.3-nouveau/Dockerfile) # Quick reference (cont.) @@ -35,7 +38,7 @@ WARNING: [https://github.com/apache/couchdb-docker/issues](https://github.com/apache/couchdb-docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/couchdb/), [`arm64v8`](https://hub.docker.com/r/arm64v8/couchdb/), [`ppc64le`](https://hub.docker.com/r/ppc64le/couchdb/), [`s390x`](https://hub.docker.com/r/s390x/couchdb/) + [`amd64`](https://hub.docker.com/r/amd64/couchdb/), [`arm64v8`](https://hub.docker.com/r/arm64v8/couchdb/), [`s390x`](https://hub.docker.com/r/s390x/couchdb/) - **Published image artifact details**: [repo-info repo's `repos/couchdb/` directory](https://github.com/docker-library/repo-info/blob/master/repos/couchdb) ([history](https://github.com/docker-library/repo-info/commits/master/repos/couchdb)) @@ -139,8 +142,8 @@ In addition, a few environment variables are provided to set very common paramet Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `couchdb` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: diff --git a/couchdb/content.md b/couchdb/content.md index e742ac8d1fa4..cc717d66136d 100644 --- a/couchdb/content.md +++ b/couchdb/content.md @@ -89,8 +89,8 @@ In addition, a few environment variables are provided to set very common paramet Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `%%REPO%%` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: diff --git a/couchdb/metadata.json b/couchdb/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/couchdb/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/crate/README.md b/crate/README.md index 89a8472ed874..cd2ed421e34b 100644 --- a/crate/README.md +++ b/crate/README.md @@ -24,11 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.5.0`, `5.5`, `latest`](https://github.com/crate/docker-crate/blob/f8585f1e0ade12c0ae4bf61aac81e8c79958a84e/Dockerfile) -- [`5.4.5`, `5.4`](https://github.com/crate/docker-crate/blob/3aa005838421825260d39fb3f889619d6c88ce4f/Dockerfile) -- [`5.3.7`, `5.3`](https://github.com/crate/docker-crate/blob/a268470d8e3c2da23bfabb71fe17213966a88bdf/Dockerfile) -- [`5.2.10`, `5.2`](https://github.com/crate/docker-crate/blob/54246541fd0ba36831fbcf05183915097b91b3b1/Dockerfile) -- [`4.8.4`, `4.8`](https://github.com/crate/docker-crate/blob/1389b454dc1478efcbde8f9846bdd8ac6f7f0f8a/Dockerfile) +- [`5.10.7`, `5.10`, `latest`](https://github.com/crate/docker-crate/blob/45ab56012a7f2d38b9150238a2e2fe617b1189e3/Dockerfile) + +- [`5.9.13`, `5.9`](https://github.com/crate/docker-crate/blob/316dbebc6a55792c706d5ea492c41b860ccbcb9c/Dockerfile) # Quick reference (cont.) diff --git a/crate/metadata.json b/crate/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/crate/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/dart/README.md b/dart/README.md index 114aeba4d5a6..a6eb0c1fbda0 100644 --- a/dart/README.md +++ b/dart/README.md @@ -24,7 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.2.0-sdk`, `3.2-sdk`, `3-sdk`, `stable-sdk`, `sdk`, `3.2.0`, `3.2`, `3`, `stable`, `latest`, `beta-sdk`, `beta`](https://github.com/dart-lang/dart-docker/blob/ab6a6394c533c317e590d0f8fd8df680e2293159/stable/bookworm/Dockerfile) +- [`3.8.1-sdk`, `3.8-sdk`, `3-sdk`, `stable-sdk`, `sdk`, `3.8.1`, `3.8`, `3`, `stable`, `latest`](https://github.com/dart-lang/dart-docker/blob/61edf8fcb0ca8bc47b084984266e5c43e9d9c845/stable/bookworm/Dockerfile) + +- [`3.9.0-100.2.beta-sdk`, `beta-sdk`, `3.9.0-100.2.beta`, `beta`](https://github.com/dart-lang/dart-docker/blob/61edf8fcb0ca8bc47b084984266e5c43e9d9c845/beta/bookworm/Dockerfile) # Quick reference (cont.) diff --git a/dart/metadata.json b/dart/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/dart/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/debian/README.md b/debian/README.md index 326f3027ec22..b2235ccb39f6 100644 --- a/debian/README.md +++ b/debian/README.md @@ -24,36 +24,53 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`bookworm`, `bookworm-20231030`, `12.2`, `12`, `latest`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/bookworm/Dockerfile) -- [`bookworm-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/bookworm/backports/Dockerfile) -- [`bookworm-slim`, `bookworm-20231030-slim`, `12.2-slim`, `12-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/bookworm/slim/Dockerfile) -- [`bullseye`, `bullseye-20231030`, `11.8`, `11`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/bullseye/Dockerfile) -- [`bullseye-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/bullseye/backports/Dockerfile) -- [`bullseye-slim`, `bullseye-20231030-slim`, `11.8-slim`, `11-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/bullseye/slim/Dockerfile) -- [`buster`, `buster-20231030`, `10.13`, `10`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/buster/Dockerfile) -- [`buster-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/buster/backports/Dockerfile) -- [`buster-slim`, `buster-20231030-slim`, `10.13-slim`, `10-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/buster/slim/Dockerfile) -- [`experimental`, `experimental-20231030`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/experimental/Dockerfile) -- [`oldoldstable`, `oldoldstable-20231030`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/oldoldstable/Dockerfile) -- [`oldoldstable-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/oldoldstable/backports/Dockerfile) -- [`oldoldstable-slim`, `oldoldstable-20231030-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/oldoldstable/slim/Dockerfile) -- [`oldstable`, `oldstable-20231030`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/oldstable/Dockerfile) -- [`oldstable-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/oldstable/backports/Dockerfile) -- [`oldstable-slim`, `oldstable-20231030-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/oldstable/slim/Dockerfile) -- [`rc-buggy`, `rc-buggy-20231030`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/rc-buggy/Dockerfile) -- [`sid`, `sid-20231030`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/sid/Dockerfile) -- [`sid-slim`, `sid-20231030-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/sid/slim/Dockerfile) -- [`stable`, `stable-20231030`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/stable/Dockerfile) -- [`stable-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/stable/backports/Dockerfile) -- [`stable-slim`, `stable-20231030-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/stable/slim/Dockerfile) -- [`testing`, `testing-20231030`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/testing/Dockerfile) -- [`testing-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/testing/backports/Dockerfile) -- [`testing-slim`, `testing-20231030-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/testing/slim/Dockerfile) -- [`trixie`, `trixie-20231030`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/trixie/Dockerfile) -- [`trixie-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/trixie/backports/Dockerfile) -- [`trixie-slim`, `trixie-20231030-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/trixie/slim/Dockerfile) -- [`unstable`, `unstable-20231030`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/unstable/Dockerfile) -- [`unstable-slim`, `unstable-20231030-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/eb898e26722d61d3a16a156c9a89a6908624cdf5/unstable/slim/Dockerfile) +- [`bookworm`, `bookworm-20250610`, `12.11`, `12`, `latest`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/bookworm/oci/index.json) + +- [`bookworm-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/bookworm/backports/Dockerfile) + +- [`bookworm-slim`, `bookworm-20250610-slim`, `12.11-slim`, `12-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/bookworm/slim/oci/index.json) + +- [`bullseye`, `bullseye-20250610`, `11.11`, `11`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/bullseye/oci/index.json) + +- [`bullseye-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/bullseye/backports/Dockerfile) + +- [`bullseye-slim`, `bullseye-20250610-slim`, `11.11-slim`, `11-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/bullseye/slim/oci/index.json) + +- [`experimental`, `experimental-20250610`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/experimental/Dockerfile) + +- [`oldstable`, `oldstable-20250610`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/oldstable/oci/index.json) + +- [`oldstable-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/oldstable/backports/Dockerfile) + +- [`oldstable-slim`, `oldstable-20250610-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/oldstable/slim/oci/index.json) + +- [`rc-buggy`, `rc-buggy-20250610`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/rc-buggy/Dockerfile) + +- [`sid`, `sid-20250610`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/sid/oci/index.json) + +- [`sid-slim`, `sid-20250610-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/sid/slim/oci/index.json) + +- [`stable`, `stable-20250610`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/stable/oci/index.json) + +- [`stable-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/stable/backports/Dockerfile) + +- [`stable-slim`, `stable-20250610-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/stable/slim/oci/index.json) + +- [`testing`, `testing-20250610`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/testing/oci/index.json) + +- [`testing-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/testing/backports/Dockerfile) + +- [`testing-slim`, `testing-20250610-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/testing/slim/oci/index.json) + +- [`trixie`, `trixie-20250610`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/trixie/oci/index.json) + +- [`trixie-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/trixie/backports/Dockerfile) + +- [`trixie-slim`, `trixie-20250610-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/trixie/slim/oci/index.json) + +- [`unstable`, `unstable-20250610`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/unstable/oci/index.json) + +- [`unstable-slim`, `unstable-20250610-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/34def9a42f8f725225fcba6357df65c8a77f2d5d/unstable/slim/oci/index.json) # Quick reference (cont.) @@ -84,6 +101,8 @@ Debian is an operating system which is composed primarily of free and open-sourc # About this image +The images in this repository are intended to be as minimal as possible (because of the immutable/layered nature of containers, it's much easier to add than it is to remove). More specifically, they're built from [the "minbase" variant](https://manpages.debian.org/stable/debootstrap/debootstrap.8.en.html#variant=minbase_buildd_fakechroot), which only installs "required" packages, and thus creates the smallest possible footprint that is still "Debian" (as defined/managed by [the Release and FTP teams](https://www.debian.org/intro/organization#distribution) within the project). + The `debian:latest` tag will always point the latest stable release. Stable releases are also tagged with their version (ie, `debian:11` is an alias for `debian:bullseye`, `debian:10` is an alias for `debian:buster`, etc). The rolling tags (`debian:stable`, `debian:testing`, etc) use the rolling suite names in their `/etc/apt/sources.list` file (ie, `deb http://deb.debian.org/debian testing main`). diff --git a/debian/content.md b/debian/content.md index 014b13a84315..cc3cebdf6eac 100644 --- a/debian/content.md +++ b/debian/content.md @@ -8,6 +8,8 @@ Debian is an operating system which is composed primarily of free and open-sourc # About this image +The images in this repository are intended to be as minimal as possible (because of the immutable/layered nature of containers, it's much easier to add than it is to remove). More specifically, they're built from [the "minbase" variant](https://manpages.debian.org/stable/debootstrap/debootstrap.8.en.html#variant=minbase_buildd_fakechroot), which only installs "required" packages, and thus creates the smallest possible footprint that is still "Debian" (as defined/managed by [the Release and FTP teams](https://www.debian.org/intro/organization#distribution) within the project). + The `%%IMAGE%%:latest` tag will always point the latest stable release. Stable releases are also tagged with their version (ie, `%%IMAGE%%:11` is an alias for `%%IMAGE%%:bullseye`, `%%IMAGE%%:10` is an alias for `%%IMAGE%%:buster`, etc). The rolling tags (`%%IMAGE%%:stable`, `%%IMAGE%%:testing`, etc) use the rolling suite names in their `/etc/apt/sources.list` file (ie, `deb http://deb.debian.org/debian testing main`). diff --git a/debian/metadata.json b/debian/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/debian/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/docker/README-short.txt b/docker/README-short.txt index 0276c1dc275b..88557ec5a782 100644 --- a/docker/README-short.txt +++ b/docker/README-short.txt @@ -1 +1 @@ -Docker in Docker! +Docker in Docker! (commonly known as "dind") diff --git a/docker/README.md b/docker/README.md index 717af237569f..7fd643494b0a 100644 --- a/docker/README.md +++ b/docker/README.md @@ -28,27 +28,37 @@ WARNING: ## Simple Tags -- [`25.0.0-beta.1-cli`, `25-rc-cli`, `rc-cli`, `25.0.0-beta.1-cli-alpine3.18`](https://github.com/docker-library/docker/blob/b8cd11e7dbf2cb9a6380b0979d6f735da0c9feb0/25-rc/cli/Dockerfile) -- [`25.0.0-beta.1-dind`, `25-rc-dind`, `rc-dind`, `25.0.0-beta.1-dind-alpine3.18`, `25.0.0-beta.1`, `25-rc`, `rc`, `25.0.0-beta.1-alpine3.18`](https://github.com/docker-library/docker/blob/2e213030c57a2134a77bf17b0710dff1a184a7c1/25-rc/dind/Dockerfile) -- [`25.0.0-beta.1-dind-rootless`, `25-rc-dind-rootless`, `rc-dind-rootless`](https://github.com/docker-library/docker/blob/2e213030c57a2134a77bf17b0710dff1a184a7c1/25-rc/dind-rootless/Dockerfile) -- [`25.0.0-beta.1-git`, `25-rc-git`, `rc-git`](https://github.com/docker-library/docker/blob/2e213030c57a2134a77bf17b0710dff1a184a7c1/25-rc/git/Dockerfile) -- [`25.0.0-beta.1-windowsservercore-ltsc2022`, `25-rc-windowsservercore-ltsc2022`, `rc-windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/b8cd11e7dbf2cb9a6380b0979d6f735da0c9feb0/25-rc/windows/windowsservercore-ltsc2022/Dockerfile) -- [`25.0.0-beta.1-windowsservercore-1809`, `25-rc-windowsservercore-1809`, `rc-windowsservercore-1809`](https://github.com/docker-library/docker/blob/b8cd11e7dbf2cb9a6380b0979d6f735da0c9feb0/25-rc/windows/windowsservercore-1809/Dockerfile) -- [`24.0.7-cli`, `24.0-cli`, `24-cli`, `cli`, `24.0.7-cli-alpine3.18`](https://github.com/docker-library/docker/blob/dfb1ba84af295e08daca9b97fed85900eab334c4/24/cli/Dockerfile) -- [`24.0.7-dind`, `24.0-dind`, `24-dind`, `dind`, `24.0.7-dind-alpine3.18`, `24.0.7`, `24.0`, `24`, `latest`, `24.0.7-alpine3.18`](https://github.com/docker-library/docker/blob/62c197fe7632d3bce351d4c337a5a129ebd8f771/24/dind/Dockerfile) -- [`24.0.7-dind-rootless`, `24.0-dind-rootless`, `24-dind-rootless`, `dind-rootless`](https://github.com/docker-library/docker/blob/62c197fe7632d3bce351d4c337a5a129ebd8f771/24/dind-rootless/Dockerfile) -- [`24.0.7-git`, `24.0-git`, `24-git`, `git`](https://github.com/docker-library/docker/blob/6964fd52030c2e6e9e0943eaac07d78c9841fbb3/24/git/Dockerfile) -- [`24.0.7-windowsservercore-ltsc2022`, `24.0-windowsservercore-ltsc2022`, `24-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/dfb1ba84af295e08daca9b97fed85900eab334c4/24/windows/windowsservercore-ltsc2022/Dockerfile) -- [`24.0.7-windowsservercore-1809`, `24.0-windowsservercore-1809`, `24-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/docker-library/docker/blob/dfb1ba84af295e08daca9b97fed85900eab334c4/24/windows/windowsservercore-1809/Dockerfile) +- [`28.3.0-rc.1-cli`, `28-rc-cli`, `rc-cli`, `28.3.0-rc.1-cli-alpine3.22`](https://github.com/docker-library/docker/blob/76619ecee54053ecbbb38f1d4a8c5d40d3688b1c/28-rc/cli/Dockerfile) + +- [`28.3.0-rc.1-dind`, `28-rc-dind`, `rc-dind`, `28.3.0-rc.1-dind-alpine3.22`, `28.3.0-rc.1`, `28-rc`, `rc`, `28.3.0-rc.1-alpine3.22`](https://github.com/docker-library/docker/blob/76619ecee54053ecbbb38f1d4a8c5d40d3688b1c/28-rc/dind/Dockerfile) + +- [`28.3.0-rc.1-dind-rootless`, `28-rc-dind-rootless`, `rc-dind-rootless`](https://github.com/docker-library/docker/blob/76619ecee54053ecbbb38f1d4a8c5d40d3688b1c/28-rc/dind-rootless/Dockerfile) + +- [`28.3.0-rc.1-windowsservercore-ltsc2025`, `28-rc-windowsservercore-ltsc2025`, `rc-windowsservercore-ltsc2025`](https://github.com/docker-library/docker/blob/76619ecee54053ecbbb38f1d4a8c5d40d3688b1c/28-rc/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`28.3.0-rc.1-windowsservercore-ltsc2022`, `28-rc-windowsservercore-ltsc2022`, `rc-windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/76619ecee54053ecbbb38f1d4a8c5d40d3688b1c/28-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`28.2.2-cli`, `28.2-cli`, `28-cli`, `cli`, `28.2.2-cli-alpine3.22`](https://github.com/docker-library/docker/blob/46b52b3a685ae16281bb08c1df1622f0a5b3ae24/28/cli/Dockerfile) + +- [`28.2.2-dind`, `28.2-dind`, `28-dind`, `dind`, `28.2.2-dind-alpine3.22`, `28.2.2`, `28.2`, `28`, `latest`, `28.2.2-alpine3.22`](https://github.com/docker-library/docker/blob/e9f3fbf07fb73d5266464f898f71510f25fa3266/28/dind/Dockerfile) + +- [`28.2.2-dind-rootless`, `28.2-dind-rootless`, `28-dind-rootless`, `dind-rootless`](https://github.com/docker-library/docker/blob/ac216a48589a02162b04badf29b22a09ca5c9043/28/dind-rootless/Dockerfile) + +- [`28.2.2-windowsservercore-ltsc2025`, `28.2-windowsservercore-ltsc2025`, `28-windowsservercore-ltsc2025`, `windowsservercore-ltsc2025`](https://github.com/docker-library/docker/blob/46b52b3a685ae16281bb08c1df1622f0a5b3ae24/28/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`28.2.2-windowsservercore-ltsc2022`, `28.2-windowsservercore-ltsc2022`, `28-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/46b52b3a685ae16281bb08c1df1622f0a5b3ae24/28/windows/windowsservercore-ltsc2022/Dockerfile) ## Shared Tags -- `25.0.0-beta.1-windowsservercore`, `25-rc-windowsservercore`, `rc-windowsservercore`: - - [`25.0.0-beta.1-windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/b8cd11e7dbf2cb9a6380b0979d6f735da0c9feb0/25-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`25.0.0-beta.1-windowsservercore-1809`](https://github.com/docker-library/docker/blob/b8cd11e7dbf2cb9a6380b0979d6f735da0c9feb0/25-rc/windows/windowsservercore-1809/Dockerfile) -- `24.0.7-windowsservercore`, `24.0-windowsservercore`, `24-windowsservercore`, `windowsservercore`: - - [`24.0.7-windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/dfb1ba84af295e08daca9b97fed85900eab334c4/24/windows/windowsservercore-ltsc2022/Dockerfile) - - [`24.0.7-windowsservercore-1809`](https://github.com/docker-library/docker/blob/dfb1ba84af295e08daca9b97fed85900eab334c4/24/windows/windowsservercore-1809/Dockerfile) +- `28.3.0-rc.1-windowsservercore`, `28-rc-windowsservercore`, `rc-windowsservercore`: + + - [`28.3.0-rc.1-windowsservercore-ltsc2025`](https://github.com/docker-library/docker/blob/76619ecee54053ecbbb38f1d4a8c5d40d3688b1c/28-rc/windows/windowsservercore-ltsc2025/Dockerfile) + - [`28.3.0-rc.1-windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/76619ecee54053ecbbb38f1d4a8c5d40d3688b1c/28-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- `28.2.2-windowsservercore`, `28.2-windowsservercore`, `28-windowsservercore`, `windowsservercore`: + + - [`28.2.2-windowsservercore-ltsc2025`](https://github.com/docker-library/docker/blob/46b52b3a685ae16281bb08c1df1622f0a5b3ae24/28/windows/windowsservercore-ltsc2025/Dockerfile) + - [`28.2.2-windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/46b52b3a685ae16281bb08c1df1622f0a5b3ae24/28/windows/windowsservercore-ltsc2022/Dockerfile) # Quick reference (cont.) @@ -276,31 +286,12 @@ $ docker run --privileged --name some-docker -d \ 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). -## Rootless - -For more information about using the experimental "rootless" image variants, see [docker-library/docker#174](https://github.com/docker-library/docker/pull/174). - -**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)). For `19.03.x` rootless images, an argument of `--experimental` is required for `dockerd` ([docker/docker#40759](https://github.com/docker/docker/pull/40759)). - -Basic example usage: - -```console -$ docker run -d --name some-docker --privileged docker:dind-rootless -$ docker logs --tail=3 some-docker # to verify the daemon has finished generating TLS certificates and is listening successfully -time="xxx" level=info msg="Daemon has completed initialization" -time="xxx" level=info msg="API listen on /run/user/1000/docker.sock" -time="xxx" level=info msg="API listen on [::]:2376" -$ docker exec -it some-docker docker-entrypoint.sh sh # using "docker-entrypoint.sh" which auto-sets "DOCKER_HOST" appropriately -/ $ docker info --format '{{ json .SecurityOptions }}' -["name=seccomp,profile=default","name=rootless"] -``` - ## Where to Store Data 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: -- 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/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). 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. +- 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. +- 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. 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: @@ -321,6 +312,37 @@ The `docker` images come in many flavors, each designed for a specific use case. 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. +## `docker:-rootless` + +For more information about using the experimental "rootless" image variants, see [docker-library/docker#174](https://github.com/docker-library/docker/pull/174). + +**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. + +Basic example usage: + +```console +$ docker run -d --name some-docker --privileged docker:dind-rootless +$ docker logs --tail=3 some-docker # to verify the daemon has finished generating TLS certificates and is listening successfully +time="xxx" level=info msg="Daemon has completed initialization" +time="xxx" level=info msg="API listen on /run/user/1000/docker.sock" +time="xxx" level=info msg="API listen on [::]:2376" +$ docker exec -it some-docker docker-entrypoint.sh sh # using "docker-entrypoint.sh" which auto-sets "DOCKER_HOST" appropriately +/ $ docker info --format '{{ json .SecurityOptions }}' +["name=seccomp,profile=default","name=rootless"] +``` + +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: + +```dockerfile +FROM docker:dind-rootless +USER root +RUN set -eux; \ + sed -i -e 's/^rootless:x:1000:1000:/rootless:x:1234:5678:/' /etc/passwd; \ + sed -i -e 's/^rootless:x:1000:/rootless:x:5678:/' /etc/group; \ + chown -R rootless ~rootless +USER rootless +``` + ## `docker:-windowsservercore` 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`). diff --git a/docker/content.md b/docker/content.md index 8236370bc637..c8ac355a8afe 100644 --- a/docker/content.md +++ b/docker/content.md @@ -32,7 +32,7 @@ Inside the directory specified by `DOCKER_TLS_CERTDIR`, the entrypoint scripts w 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). -To disable this image behavior, simply override the container command or entrypoint to run `dockerd` directly (`... docker:dind dockerd ...` or `... --entrypoint dockerd docker:dind ...`). +To disable this image behavior, simply override the container command or entrypoint to run `dockerd` directly (`... %%IMAGE%%:dind dockerd ...` or `... --entrypoint dockerd %%IMAGE%%:dind ...`). ## Start a daemon instance @@ -205,31 +205,12 @@ $ docker run --privileged --name some-docker -d \ 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). -## Rootless - -For more information about using the experimental "rootless" image variants, see [docker-library/docker#174](https://github.com/docker-library/docker/pull/174). - -**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)). For `19.03.x` rootless images, an argument of `--experimental` is required for `dockerd` ([docker/docker#40759](https://github.com/docker/docker/pull/40759)). - -Basic example usage: - -```console -$ docker run -d --name some-docker --privileged docker:dind-rootless -$ docker logs --tail=3 some-docker # to verify the daemon has finished generating TLS certificates and is listening successfully -time="xxx" level=info msg="Daemon has completed initialization" -time="xxx" level=info msg="API listen on /run/user/1000/docker.sock" -time="xxx" level=info msg="API listen on [::]:2376" -$ docker exec -it some-docker docker-entrypoint.sh sh # using "docker-entrypoint.sh" which auto-sets "DOCKER_HOST" appropriately -/ $ docker info --format '{{ json .SecurityOptions }}' -["name=seccomp,profile=default","name=rootless"] -``` - ## Where to Store Data Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `%%REPO%%` images to familiarize themselves with the options available, including: -- 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/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). 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. +- 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. +- 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. 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: diff --git a/docker/metadata.json b/docker/metadata.json new file mode 100644 index 000000000000..67e782480585 --- /dev/null +++ b/docker/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "developer-tools" + ] + } +} diff --git a/docker/variant-rootless.md b/docker/variant-rootless.md new file mode 100644 index 000000000000..8aedf7864809 --- /dev/null +++ b/docker/variant-rootless.md @@ -0,0 +1,30 @@ +## `%%IMAGE%%:-rootless` + +For more information about using the experimental "rootless" image variants, see [docker-library/docker#174](https://github.com/docker-library/docker/pull/174). + +**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. + +Basic example usage: + +```console +$ docker run -d --name some-docker --privileged %%IMAGE%%:dind-rootless +$ docker logs --tail=3 some-docker # to verify the daemon has finished generating TLS certificates and is listening successfully +time="xxx" level=info msg="Daemon has completed initialization" +time="xxx" level=info msg="API listen on /run/user/1000/docker.sock" +time="xxx" level=info msg="API listen on [::]:2376" +$ docker exec -it some-docker docker-entrypoint.sh sh # using "docker-entrypoint.sh" which auto-sets "DOCKER_HOST" appropriately +/ $ docker info --format '{{ json .SecurityOptions }}' +["name=seccomp,profile=default","name=rootless"] +``` + +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: + +```dockerfile +FROM %%IMAGE%%:dind-rootless +USER root +RUN set -eux; \ + sed -i -e 's/^rootless:x:1000:1000:/rootless:x:1234:5678:/' /etc/passwd; \ + sed -i -e 's/^rootless:x:1000:/rootless:x:5678:/' /etc/group; \ + chown -R rootless ~rootless +USER rootless +``` diff --git a/drupal/README.md b/drupal/README.md index d8076738ac07..4c681086a93a 100644 --- a/drupal/README.md +++ b/drupal/README.md @@ -24,64 +24,137 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`10.1.6-php8.2-apache-bookworm`, `10.1-php8.2-apache-bookworm`, `10-php8.2-apache-bookworm`, `php8.2-apache-bookworm`, `10.1.6-php8.2-apache`, `10.1-php8.2-apache`, `10-php8.2-apache`, `php8.2-apache`, `10.1.6-php8.2`, `10.1-php8.2`, `10-php8.2`, `php8.2`, `10.1.6-apache-bookworm`, `10.1-apache-bookworm`, `10-apache-bookworm`, `apache-bookworm`, `10.1.6-apache`, `10.1-apache`, `10-apache`, `apache`, `10.1.6`, `10.1`, `10`, `latest`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.2/apache-bookworm/Dockerfile) -- [`10.1.6-php8.2-fpm-bookworm`, `10.1-php8.2-fpm-bookworm`, `10-php8.2-fpm-bookworm`, `php8.2-fpm-bookworm`, `10.1.6-php8.2-fpm`, `10.1-php8.2-fpm`, `10-php8.2-fpm`, `php8.2-fpm`, `10.1.6-fpm-bookworm`, `10.1-fpm-bookworm`, `10-fpm-bookworm`, `fpm-bookworm`, `10.1.6-fpm`, `10.1-fpm`, `10-fpm`, `fpm`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.2/fpm-bookworm/Dockerfile) -- [`10.1.6-php8.2-apache-bullseye`, `10.1-php8.2-apache-bullseye`, `10-php8.2-apache-bullseye`, `php8.2-apache-bullseye`, `10.1.6-apache-bullseye`, `10.1-apache-bullseye`, `10-apache-bullseye`, `apache-bullseye`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.2/apache-bullseye/Dockerfile) -- [`10.1.6-php8.2-fpm-bullseye`, `10.1-php8.2-fpm-bullseye`, `10-php8.2-fpm-bullseye`, `php8.2-fpm-bullseye`, `10.1.6-fpm-bullseye`, `10.1-fpm-bullseye`, `10-fpm-bullseye`, `fpm-bullseye`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.2/fpm-bullseye/Dockerfile) -- [`10.1.6-php8.2-fpm-alpine3.18`, `10.1-php8.2-fpm-alpine3.18`, `10-php8.2-fpm-alpine3.18`, `php8.2-fpm-alpine3.18`, `10.1.6-php8.2-fpm-alpine`, `10.1-php8.2-fpm-alpine`, `10-php8.2-fpm-alpine`, `php8.2-fpm-alpine`, `10.1.6-fpm-alpine3.18`, `10.1-fpm-alpine3.18`, `10-fpm-alpine3.18`, `fpm-alpine3.18`, `10.1.6-fpm-alpine`, `10.1-fpm-alpine`, `10-fpm-alpine`, `fpm-alpine`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.2/fpm-alpine3.18/Dockerfile) -- [`10.1.6-php8.2-fpm-alpine3.17`, `10.1-php8.2-fpm-alpine3.17`, `10-php8.2-fpm-alpine3.17`, `php8.2-fpm-alpine3.17`, `10.1.6-fpm-alpine3.17`, `10.1-fpm-alpine3.17`, `10-fpm-alpine3.17`, `fpm-alpine3.17`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.2/fpm-alpine3.17/Dockerfile) -- [`10.1.6-php8.1-apache-bookworm`, `10.1-php8.1-apache-bookworm`, `10-php8.1-apache-bookworm`, `php8.1-apache-bookworm`, `10.1.6-php8.1-apache`, `10.1-php8.1-apache`, `10-php8.1-apache`, `php8.1-apache`, `10.1.6-php8.1`, `10.1-php8.1`, `10-php8.1`, `php8.1`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.1/apache-bookworm/Dockerfile) -- [`10.1.6-php8.1-fpm-bookworm`, `10.1-php8.1-fpm-bookworm`, `10-php8.1-fpm-bookworm`, `php8.1-fpm-bookworm`, `10.1.6-php8.1-fpm`, `10.1-php8.1-fpm`, `10-php8.1-fpm`, `php8.1-fpm`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.1/fpm-bookworm/Dockerfile) -- [`10.1.6-php8.1-apache-bullseye`, `10.1-php8.1-apache-bullseye`, `10-php8.1-apache-bullseye`, `php8.1-apache-bullseye`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.1/apache-bullseye/Dockerfile) -- [`10.1.6-php8.1-fpm-bullseye`, `10.1-php8.1-fpm-bullseye`, `10-php8.1-fpm-bullseye`, `php8.1-fpm-bullseye`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.1/fpm-bullseye/Dockerfile) -- [`10.1.6-php8.1-fpm-alpine3.18`, `10.1-php8.1-fpm-alpine3.18`, `10-php8.1-fpm-alpine3.18`, `php8.1-fpm-alpine3.18`, `10.1.6-php8.1-fpm-alpine`, `10.1-php8.1-fpm-alpine`, `10-php8.1-fpm-alpine`, `php8.1-fpm-alpine`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.1/fpm-alpine3.18/Dockerfile) -- [`10.1.6-php8.1-fpm-alpine3.17`, `10.1-php8.1-fpm-alpine3.17`, `10-php8.1-fpm-alpine3.17`, `php8.1-fpm-alpine3.17`](https://github.com/docker-library/drupal/blob/96f915e1503663db2bc6f7cff28774e62aeac4ca/10.1/php8.1/fpm-alpine3.17/Dockerfile) -- [`10.0.11-php8.2-apache-bookworm`, `10.0-php8.2-apache-bookworm`, `10.0.11-php8.2-apache`, `10.0-php8.2-apache`, `10.0.11-php8.2`, `10.0-php8.2`, `10.0.11-apache-bookworm`, `10.0-apache-bookworm`, `10.0.11-apache`, `10.0-apache`, `10.0.11`, `10.0`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.2/apache-bookworm/Dockerfile) -- [`10.0.11-php8.2-fpm-bookworm`, `10.0-php8.2-fpm-bookworm`, `10.0.11-php8.2-fpm`, `10.0-php8.2-fpm`, `10.0.11-fpm-bookworm`, `10.0-fpm-bookworm`, `10.0.11-fpm`, `10.0-fpm`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.2/fpm-bookworm/Dockerfile) -- [`10.0.11-php8.2-apache-bullseye`, `10.0-php8.2-apache-bullseye`, `10.0.11-apache-bullseye`, `10.0-apache-bullseye`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.2/apache-bullseye/Dockerfile) -- [`10.0.11-php8.2-fpm-bullseye`, `10.0-php8.2-fpm-bullseye`, `10.0.11-fpm-bullseye`, `10.0-fpm-bullseye`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.2/fpm-bullseye/Dockerfile) -- [`10.0.11-php8.2-fpm-alpine3.18`, `10.0-php8.2-fpm-alpine3.18`, `10.0.11-php8.2-fpm-alpine`, `10.0-php8.2-fpm-alpine`, `10.0.11-fpm-alpine3.18`, `10.0-fpm-alpine3.18`, `10.0.11-fpm-alpine`, `10.0-fpm-alpine`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.2/fpm-alpine3.18/Dockerfile) -- [`10.0.11-php8.2-fpm-alpine3.17`, `10.0-php8.2-fpm-alpine3.17`, `10.0.11-fpm-alpine3.17`, `10.0-fpm-alpine3.17`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.2/fpm-alpine3.17/Dockerfile) -- [`10.0.11-php8.1-apache-bookworm`, `10.0-php8.1-apache-bookworm`, `10.0.11-php8.1-apache`, `10.0-php8.1-apache`, `10.0.11-php8.1`, `10.0-php8.1`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.1/apache-bookworm/Dockerfile) -- [`10.0.11-php8.1-fpm-bookworm`, `10.0-php8.1-fpm-bookworm`, `10.0.11-php8.1-fpm`, `10.0-php8.1-fpm`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.1/fpm-bookworm/Dockerfile) -- [`10.0.11-php8.1-apache-bullseye`, `10.0-php8.1-apache-bullseye`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.1/apache-bullseye/Dockerfile) -- [`10.0.11-php8.1-fpm-bullseye`, `10.0-php8.1-fpm-bullseye`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.1/fpm-bullseye/Dockerfile) -- [`10.0.11-php8.1-fpm-alpine3.18`, `10.0-php8.1-fpm-alpine3.18`, `10.0.11-php8.1-fpm-alpine`, `10.0-php8.1-fpm-alpine`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.1/fpm-alpine3.18/Dockerfile) -- [`10.0.11-php8.1-fpm-alpine3.17`, `10.0-php8.1-fpm-alpine3.17`](https://github.com/docker-library/drupal/blob/8c04f5ce4313f395be9c5d1c37841d17c121068e/10.0/php8.1/fpm-alpine3.17/Dockerfile) -- [`9.5.11-php8.2-apache-bookworm`, `9.5-php8.2-apache-bookworm`, `9-php8.2-apache-bookworm`, `9.5.11-php8.2-apache`, `9.5-php8.2-apache`, `9-php8.2-apache`, `9.5.11-php8.2`, `9.5-php8.2`, `9-php8.2`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.2/apache-bookworm/Dockerfile) -- [`9.5.11-php8.2-fpm-bookworm`, `9.5-php8.2-fpm-bookworm`, `9-php8.2-fpm-bookworm`, `9.5.11-php8.2-fpm`, `9.5-php8.2-fpm`, `9-php8.2-fpm`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.2/fpm-bookworm/Dockerfile) -- [`9.5.11-php8.2-apache-bullseye`, `9.5-php8.2-apache-bullseye`, `9-php8.2-apache-bullseye`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.2/apache-bullseye/Dockerfile) -- [`9.5.11-php8.2-fpm-bullseye`, `9.5-php8.2-fpm-bullseye`, `9-php8.2-fpm-bullseye`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.2/fpm-bullseye/Dockerfile) -- [`9.5.11-php8.2-fpm-alpine3.18`, `9.5-php8.2-fpm-alpine3.18`, `9-php8.2-fpm-alpine3.18`, `9.5.11-php8.2-fpm-alpine`, `9.5-php8.2-fpm-alpine`, `9-php8.2-fpm-alpine`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.2/fpm-alpine3.18/Dockerfile) -- [`9.5.11-php8.2-fpm-alpine3.17`, `9.5-php8.2-fpm-alpine3.17`, `9-php8.2-fpm-alpine3.17`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.2/fpm-alpine3.17/Dockerfile) -- [`9.5.11-php8.1-apache-bookworm`, `9.5-php8.1-apache-bookworm`, `9-php8.1-apache-bookworm`, `9.5.11-php8.1-apache`, `9.5-php8.1-apache`, `9-php8.1-apache`, `9.5.11-php8.1`, `9.5-php8.1`, `9-php8.1`, `9.5.11-apache-bookworm`, `9.5-apache-bookworm`, `9-apache-bookworm`, `9.5.11-apache`, `9.5-apache`, `9-apache`, `9.5.11`, `9.5`, `9`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.1/apache-bookworm/Dockerfile) -- [`9.5.11-php8.1-fpm-bookworm`, `9.5-php8.1-fpm-bookworm`, `9-php8.1-fpm-bookworm`, `9.5.11-php8.1-fpm`, `9.5-php8.1-fpm`, `9-php8.1-fpm`, `9.5.11-fpm-bookworm`, `9.5-fpm-bookworm`, `9-fpm-bookworm`, `9.5.11-fpm`, `9.5-fpm`, `9-fpm`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.1/fpm-bookworm/Dockerfile) -- [`9.5.11-php8.1-apache-bullseye`, `9.5-php8.1-apache-bullseye`, `9-php8.1-apache-bullseye`, `9.5.11-apache-bullseye`, `9.5-apache-bullseye`, `9-apache-bullseye`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.1/apache-bullseye/Dockerfile) -- [`9.5.11-php8.1-fpm-bullseye`, `9.5-php8.1-fpm-bullseye`, `9-php8.1-fpm-bullseye`, `9.5.11-fpm-bullseye`, `9.5-fpm-bullseye`, `9-fpm-bullseye`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.1/fpm-bullseye/Dockerfile) -- [`9.5.11-php8.1-fpm-alpine3.18`, `9.5-php8.1-fpm-alpine3.18`, `9-php8.1-fpm-alpine3.18`, `9.5.11-php8.1-fpm-alpine`, `9.5-php8.1-fpm-alpine`, `9-php8.1-fpm-alpine`, `9.5.11-fpm-alpine3.18`, `9.5-fpm-alpine3.18`, `9-fpm-alpine3.18`, `9.5.11-fpm-alpine`, `9.5-fpm-alpine`, `9-fpm-alpine`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.1/fpm-alpine3.18/Dockerfile) -- [`9.5.11-php8.1-fpm-alpine3.17`, `9.5-php8.1-fpm-alpine3.17`, `9-php8.1-fpm-alpine3.17`, `9.5.11-fpm-alpine3.17`, `9.5-fpm-alpine3.17`, `9-fpm-alpine3.17`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.1/fpm-alpine3.17/Dockerfile) -- [`9.5.11-php8.0-apache-bullseye`, `9.5-php8.0-apache-bullseye`, `9-php8.0-apache-bullseye`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.0/apache-bullseye/Dockerfile) -- [`9.5.11-php8.0-fpm-bullseye`, `9.5-php8.0-fpm-bullseye`, `9-php8.0-fpm-bullseye`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.0/fpm-bullseye/Dockerfile) -- [`9.5.11-php8.0-apache-buster`, `9.5-php8.0-apache-buster`, `9-php8.0-apache-buster`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.0/apache-buster/Dockerfile) -- [`9.5.11-php8.0-fpm-buster`, `9.5-php8.0-fpm-buster`, `9-php8.0-fpm-buster`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.0/fpm-buster/Dockerfile) -- [`9.5.11-php8.0-fpm-alpine3.16`, `9.5-php8.0-fpm-alpine3.16`, `9-php8.0-fpm-alpine3.16`](https://github.com/docker-library/drupal/blob/addca2cc5377c9607cb441c37aecfebfc6554a11/9.5/php8.0/fpm-alpine3.16/Dockerfile) -- [`7.98-php8.2-apache-bookworm`, `7-php8.2-apache-bookworm`, `7.98-php8.2-apache`, `7-php8.2-apache`, `7.98-php8.2`, `7-php8.2`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.2/apache-bookworm/Dockerfile) -- [`7.98-php8.2-fpm-bookworm`, `7-php8.2-fpm-bookworm`, `7.98-php8.2-fpm`, `7-php8.2-fpm`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.2/fpm-bookworm/Dockerfile) -- [`7.98-php8.2-apache-bullseye`, `7-php8.2-apache-bullseye`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.2/apache-bullseye/Dockerfile) -- [`7.98-php8.2-fpm-bullseye`, `7-php8.2-fpm-bullseye`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.2/fpm-bullseye/Dockerfile) -- [`7.98-php8.2-fpm-alpine3.18`, `7-php8.2-fpm-alpine3.18`, `7.98-php8.2-fpm-alpine`, `7-php8.2-fpm-alpine`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.2/fpm-alpine3.18/Dockerfile) -- [`7.98-php8.2-fpm-alpine3.17`, `7-php8.2-fpm-alpine3.17`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.2/fpm-alpine3.17/Dockerfile) -- [`7.98-php8.1-apache-bookworm`, `7-php8.1-apache-bookworm`, `7.98-php8.1-apache`, `7-php8.1-apache`, `7.98-php8.1`, `7-php8.1`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.1/apache-bookworm/Dockerfile) -- [`7.98-php8.1-fpm-bookworm`, `7-php8.1-fpm-bookworm`, `7.98-php8.1-fpm`, `7-php8.1-fpm`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.1/fpm-bookworm/Dockerfile) -- [`7.98-php8.1-apache-bullseye`, `7-php8.1-apache-bullseye`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.1/apache-bullseye/Dockerfile) -- [`7.98-php8.1-fpm-bullseye`, `7-php8.1-fpm-bullseye`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.1/fpm-bullseye/Dockerfile) -- [`7.98-php8.1-fpm-alpine3.18`, `7-php8.1-fpm-alpine3.18`, `7.98-php8.1-fpm-alpine`, `7-php8.1-fpm-alpine`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.1/fpm-alpine3.18/Dockerfile) -- [`7.98-php8.1-fpm-alpine3.17`, `7-php8.1-fpm-alpine3.17`](https://github.com/docker-library/drupal/blob/427357a0d6f362f462fffc89090bf172e4743c43/7/php8.1/fpm-alpine3.17/Dockerfile) -- [`7.98-php8.0-apache-bullseye`, `7-php8.0-apache-bullseye`, `7.98-apache-bullseye`, `7-apache-bullseye`](https://github.com/docker-library/drupal/blob/4224e1aab82c9d3d2d4d759ce5c5e3e40242ecb3/7/php8.0/apache-bullseye/Dockerfile) -- [`7.98-php8.0-fpm-bullseye`, `7-php8.0-fpm-bullseye`, `7.98-fpm-bullseye`, `7-fpm-bullseye`](https://github.com/docker-library/drupal/blob/4224e1aab82c9d3d2d4d759ce5c5e3e40242ecb3/7/php8.0/fpm-bullseye/Dockerfile) -- [`7.98-php8.0-apache-buster`, `7-php8.0-apache-buster`, `7.98-apache-buster`, `7-apache-buster`](https://github.com/docker-library/drupal/blob/4224e1aab82c9d3d2d4d759ce5c5e3e40242ecb3/7/php8.0/apache-buster/Dockerfile) -- [`7.98-php8.0-fpm-buster`, `7-php8.0-fpm-buster`, `7.98-fpm-buster`, `7-fpm-buster`](https://github.com/docker-library/drupal/blob/4224e1aab82c9d3d2d4d759ce5c5e3e40242ecb3/7/php8.0/fpm-buster/Dockerfile) -- [`7.98-php8.0-fpm-alpine3.16`, `7-php8.0-fpm-alpine3.16`, `7.98-fpm-alpine3.16`, `7-fpm-alpine3.16`](https://github.com/docker-library/drupal/blob/ebd9f36e6468515c9e5d469651ffb244094770b7/7/php8.0/fpm-alpine3.16/Dockerfile) +- [`11.2.0-beta1-php8.4-apache-bookworm`, `11.2-rc-php8.4-apache-bookworm`, `11.2.0-beta1-php8.4-apache`, `11.2-rc-php8.4-apache`, `11.2.0-beta1-php8.4`, `11.2-rc-php8.4`, `11.2.0-beta1-apache-bookworm`, `11.2-rc-apache-bookworm`, `11.2.0-beta1-apache`, `11.2-rc-apache`, `11.2.0-beta1`, `11.2-rc`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.4/apache-bookworm/Dockerfile) + +- [`11.2.0-beta1-php8.4-fpm-bookworm`, `11.2-rc-php8.4-fpm-bookworm`, `11.2.0-beta1-php8.4-fpm`, `11.2-rc-php8.4-fpm`, `11.2.0-beta1-fpm-bookworm`, `11.2-rc-fpm-bookworm`, `11.2.0-beta1-fpm`, `11.2-rc-fpm`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.4/fpm-bookworm/Dockerfile) + +- [`11.2.0-beta1-php8.4-apache-bullseye`, `11.2-rc-php8.4-apache-bullseye`, `11.2.0-beta1-apache-bullseye`, `11.2-rc-apache-bullseye`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.4/apache-bullseye/Dockerfile) + +- [`11.2.0-beta1-php8.4-fpm-bullseye`, `11.2-rc-php8.4-fpm-bullseye`, `11.2.0-beta1-fpm-bullseye`, `11.2-rc-fpm-bullseye`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.4/fpm-bullseye/Dockerfile) + +- [`11.2.0-beta1-php8.4-fpm-alpine3.21`, `11.2-rc-php8.4-fpm-alpine3.21`, `11.2.0-beta1-php8.4-fpm-alpine`, `11.2-rc-php8.4-fpm-alpine`, `11.2.0-beta1-fpm-alpine3.21`, `11.2-rc-fpm-alpine3.21`, `11.2.0-beta1-fpm-alpine`, `11.2-rc-fpm-alpine`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.4/fpm-alpine3.21/Dockerfile) + +- [`11.2.0-beta1-php8.4-fpm-alpine3.20`, `11.2-rc-php8.4-fpm-alpine3.20`, `11.2.0-beta1-fpm-alpine3.20`, `11.2-rc-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.4/fpm-alpine3.20/Dockerfile) + +- [`11.2.0-beta1-php8.3-apache-bookworm`, `11.2-rc-php8.3-apache-bookworm`, `11.2.0-beta1-php8.3-apache`, `11.2-rc-php8.3-apache`, `11.2.0-beta1-php8.3`, `11.2-rc-php8.3`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.3/apache-bookworm/Dockerfile) + +- [`11.2.0-beta1-php8.3-fpm-bookworm`, `11.2-rc-php8.3-fpm-bookworm`, `11.2.0-beta1-php8.3-fpm`, `11.2-rc-php8.3-fpm`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.3/fpm-bookworm/Dockerfile) + +- [`11.2.0-beta1-php8.3-apache-bullseye`, `11.2-rc-php8.3-apache-bullseye`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.3/apache-bullseye/Dockerfile) + +- [`11.2.0-beta1-php8.3-fpm-bullseye`, `11.2-rc-php8.3-fpm-bullseye`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.3/fpm-bullseye/Dockerfile) + +- [`11.2.0-beta1-php8.3-fpm-alpine3.21`, `11.2-rc-php8.3-fpm-alpine3.21`, `11.2.0-beta1-php8.3-fpm-alpine`, `11.2-rc-php8.3-fpm-alpine`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.3/fpm-alpine3.21/Dockerfile) + +- [`11.2.0-beta1-php8.3-fpm-alpine3.20`, `11.2-rc-php8.3-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/11.2-rc/php8.3/fpm-alpine3.20/Dockerfile) + +- [`11.1.8-php8.4-apache-bookworm`, `11.1-php8.4-apache-bookworm`, `11-php8.4-apache-bookworm`, `php8.4-apache-bookworm`, `11.1.8-php8.4-apache`, `11.1-php8.4-apache`, `11-php8.4-apache`, `php8.4-apache`, `11.1.8-php8.4`, `11.1-php8.4`, `11-php8.4`, `php8.4`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.4/apache-bookworm/Dockerfile) + +- [`11.1.8-php8.4-fpm-bookworm`, `11.1-php8.4-fpm-bookworm`, `11-php8.4-fpm-bookworm`, `php8.4-fpm-bookworm`, `11.1.8-php8.4-fpm`, `11.1-php8.4-fpm`, `11-php8.4-fpm`, `php8.4-fpm`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.4/fpm-bookworm/Dockerfile) + +- [`11.1.8-php8.4-apache-bullseye`, `11.1-php8.4-apache-bullseye`, `11-php8.4-apache-bullseye`, `php8.4-apache-bullseye`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.4/apache-bullseye/Dockerfile) + +- [`11.1.8-php8.4-fpm-bullseye`, `11.1-php8.4-fpm-bullseye`, `11-php8.4-fpm-bullseye`, `php8.4-fpm-bullseye`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.4/fpm-bullseye/Dockerfile) + +- [`11.1.8-php8.4-fpm-alpine3.21`, `11.1-php8.4-fpm-alpine3.21`, `11-php8.4-fpm-alpine3.21`, `php8.4-fpm-alpine3.21`, `11.1.8-php8.4-fpm-alpine`, `11.1-php8.4-fpm-alpine`, `11-php8.4-fpm-alpine`, `php8.4-fpm-alpine`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.4/fpm-alpine3.21/Dockerfile) + +- [`11.1.8-php8.4-fpm-alpine3.20`, `11.1-php8.4-fpm-alpine3.20`, `11-php8.4-fpm-alpine3.20`, `php8.4-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.4/fpm-alpine3.20/Dockerfile) + +- [`11.1.8-php8.3-apache-bookworm`, `11.1-php8.3-apache-bookworm`, `11-php8.3-apache-bookworm`, `php8.3-apache-bookworm`, `11.1.8-php8.3-apache`, `11.1-php8.3-apache`, `11-php8.3-apache`, `php8.3-apache`, `11.1.8-php8.3`, `11.1-php8.3`, `11-php8.3`, `php8.3`, `11.1.8-apache-bookworm`, `11.1-apache-bookworm`, `11-apache-bookworm`, `apache-bookworm`, `11.1.8-apache`, `11.1-apache`, `11-apache`, `apache`, `11.1.8`, `11.1`, `11`, `latest`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.3/apache-bookworm/Dockerfile) + +- [`11.1.8-php8.3-fpm-bookworm`, `11.1-php8.3-fpm-bookworm`, `11-php8.3-fpm-bookworm`, `php8.3-fpm-bookworm`, `11.1.8-php8.3-fpm`, `11.1-php8.3-fpm`, `11-php8.3-fpm`, `php8.3-fpm`, `11.1.8-fpm-bookworm`, `11.1-fpm-bookworm`, `11-fpm-bookworm`, `fpm-bookworm`, `11.1.8-fpm`, `11.1-fpm`, `11-fpm`, `fpm`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.3/fpm-bookworm/Dockerfile) + +- [`11.1.8-php8.3-apache-bullseye`, `11.1-php8.3-apache-bullseye`, `11-php8.3-apache-bullseye`, `php8.3-apache-bullseye`, `11.1.8-apache-bullseye`, `11.1-apache-bullseye`, `11-apache-bullseye`, `apache-bullseye`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.3/apache-bullseye/Dockerfile) + +- [`11.1.8-php8.3-fpm-bullseye`, `11.1-php8.3-fpm-bullseye`, `11-php8.3-fpm-bullseye`, `php8.3-fpm-bullseye`, `11.1.8-fpm-bullseye`, `11.1-fpm-bullseye`, `11-fpm-bullseye`, `fpm-bullseye`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.3/fpm-bullseye/Dockerfile) + +- [`11.1.8-php8.3-fpm-alpine3.21`, `11.1-php8.3-fpm-alpine3.21`, `11-php8.3-fpm-alpine3.21`, `php8.3-fpm-alpine3.21`, `11.1.8-php8.3-fpm-alpine`, `11.1-php8.3-fpm-alpine`, `11-php8.3-fpm-alpine`, `php8.3-fpm-alpine`, `11.1.8-fpm-alpine3.21`, `11.1-fpm-alpine3.21`, `11-fpm-alpine3.21`, `fpm-alpine3.21`, `11.1.8-fpm-alpine`, `11.1-fpm-alpine`, `11-fpm-alpine`, `fpm-alpine`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.3/fpm-alpine3.21/Dockerfile) + +- [`11.1.8-php8.3-fpm-alpine3.20`, `11.1-php8.3-fpm-alpine3.20`, `11-php8.3-fpm-alpine3.20`, `php8.3-fpm-alpine3.20`, `11.1.8-fpm-alpine3.20`, `11.1-fpm-alpine3.20`, `11-fpm-alpine3.20`, `fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/fc8bb8678a97dd7100c472b8d91ca80d8b898ebf/11.1/php8.3/fpm-alpine3.20/Dockerfile) + +- [`11.0.13-php8.3-apache-bookworm`, `11.0-php8.3-apache-bookworm`, `11.0.13-php8.3-apache`, `11.0-php8.3-apache`, `11.0.13-php8.3`, `11.0-php8.3`, `11.0.13-apache-bookworm`, `11.0-apache-bookworm`, `11.0.13-apache`, `11.0-apache`, `11.0.13`, `11.0`](https://github.com/docker-library/drupal/blob/6e99d404954100da55da961fabfdbd5176523cd3/11.0/php8.3/apache-bookworm/Dockerfile) + +- [`11.0.13-php8.3-fpm-bookworm`, `11.0-php8.3-fpm-bookworm`, `11.0.13-php8.3-fpm`, `11.0-php8.3-fpm`, `11.0.13-fpm-bookworm`, `11.0-fpm-bookworm`, `11.0.13-fpm`, `11.0-fpm`](https://github.com/docker-library/drupal/blob/6e99d404954100da55da961fabfdbd5176523cd3/11.0/php8.3/fpm-bookworm/Dockerfile) + +- [`11.0.13-php8.3-apache-bullseye`, `11.0-php8.3-apache-bullseye`, `11.0.13-apache-bullseye`, `11.0-apache-bullseye`](https://github.com/docker-library/drupal/blob/6e99d404954100da55da961fabfdbd5176523cd3/11.0/php8.3/apache-bullseye/Dockerfile) + +- [`11.0.13-php8.3-fpm-bullseye`, `11.0-php8.3-fpm-bullseye`, `11.0.13-fpm-bullseye`, `11.0-fpm-bullseye`](https://github.com/docker-library/drupal/blob/6e99d404954100da55da961fabfdbd5176523cd3/11.0/php8.3/fpm-bullseye/Dockerfile) + +- [`11.0.13-php8.3-fpm-alpine3.21`, `11.0-php8.3-fpm-alpine3.21`, `11.0.13-php8.3-fpm-alpine`, `11.0-php8.3-fpm-alpine`, `11.0.13-fpm-alpine3.21`, `11.0-fpm-alpine3.21`, `11.0.13-fpm-alpine`, `11.0-fpm-alpine`](https://github.com/docker-library/drupal/blob/6e99d404954100da55da961fabfdbd5176523cd3/11.0/php8.3/fpm-alpine3.21/Dockerfile) + +- [`11.0.13-php8.3-fpm-alpine3.20`, `11.0-php8.3-fpm-alpine3.20`, `11.0.13-fpm-alpine3.20`, `11.0-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/6e99d404954100da55da961fabfdbd5176523cd3/11.0/php8.3/fpm-alpine3.20/Dockerfile) + +- [`10.5.0-beta1-php8.4-apache-bookworm`, `10.5-rc-php8.4-apache-bookworm`, `10.5.0-beta1-php8.4-apache`, `10.5-rc-php8.4-apache`, `10.5.0-beta1-php8.4`, `10.5-rc-php8.4`, `10.5.0-beta1-apache-bookworm`, `10.5-rc-apache-bookworm`, `10.5.0-beta1-apache`, `10.5-rc-apache`, `10.5.0-beta1`, `10.5-rc`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.4/apache-bookworm/Dockerfile) + +- [`10.5.0-beta1-php8.4-fpm-bookworm`, `10.5-rc-php8.4-fpm-bookworm`, `10.5.0-beta1-php8.4-fpm`, `10.5-rc-php8.4-fpm`, `10.5.0-beta1-fpm-bookworm`, `10.5-rc-fpm-bookworm`, `10.5.0-beta1-fpm`, `10.5-rc-fpm`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.4/fpm-bookworm/Dockerfile) + +- [`10.5.0-beta1-php8.4-apache-bullseye`, `10.5-rc-php8.4-apache-bullseye`, `10.5.0-beta1-apache-bullseye`, `10.5-rc-apache-bullseye`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.4/apache-bullseye/Dockerfile) + +- [`10.5.0-beta1-php8.4-fpm-bullseye`, `10.5-rc-php8.4-fpm-bullseye`, `10.5.0-beta1-fpm-bullseye`, `10.5-rc-fpm-bullseye`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.4/fpm-bullseye/Dockerfile) + +- [`10.5.0-beta1-php8.4-fpm-alpine3.21`, `10.5-rc-php8.4-fpm-alpine3.21`, `10.5.0-beta1-php8.4-fpm-alpine`, `10.5-rc-php8.4-fpm-alpine`, `10.5.0-beta1-fpm-alpine3.21`, `10.5-rc-fpm-alpine3.21`, `10.5.0-beta1-fpm-alpine`, `10.5-rc-fpm-alpine`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.4/fpm-alpine3.21/Dockerfile) + +- [`10.5.0-beta1-php8.4-fpm-alpine3.20`, `10.5-rc-php8.4-fpm-alpine3.20`, `10.5.0-beta1-fpm-alpine3.20`, `10.5-rc-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.4/fpm-alpine3.20/Dockerfile) + +- [`10.5.0-beta1-php8.3-apache-bookworm`, `10.5-rc-php8.3-apache-bookworm`, `10.5.0-beta1-php8.3-apache`, `10.5-rc-php8.3-apache`, `10.5.0-beta1-php8.3`, `10.5-rc-php8.3`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.3/apache-bookworm/Dockerfile) + +- [`10.5.0-beta1-php8.3-fpm-bookworm`, `10.5-rc-php8.3-fpm-bookworm`, `10.5.0-beta1-php8.3-fpm`, `10.5-rc-php8.3-fpm`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.3/fpm-bookworm/Dockerfile) + +- [`10.5.0-beta1-php8.3-apache-bullseye`, `10.5-rc-php8.3-apache-bullseye`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.3/apache-bullseye/Dockerfile) + +- [`10.5.0-beta1-php8.3-fpm-bullseye`, `10.5-rc-php8.3-fpm-bullseye`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.3/fpm-bullseye/Dockerfile) + +- [`10.5.0-beta1-php8.3-fpm-alpine3.21`, `10.5-rc-php8.3-fpm-alpine3.21`, `10.5.0-beta1-php8.3-fpm-alpine`, `10.5-rc-php8.3-fpm-alpine`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.3/fpm-alpine3.21/Dockerfile) + +- [`10.5.0-beta1-php8.3-fpm-alpine3.20`, `10.5-rc-php8.3-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/5d3e557c6488dd6581244cc3b885ce4308d54502/10.5-rc/php8.3/fpm-alpine3.20/Dockerfile) + +- [`10.4.8-php8.4-apache-bookworm`, `10.4-php8.4-apache-bookworm`, `10-php8.4-apache-bookworm`, `10.4.8-php8.4-apache`, `10.4-php8.4-apache`, `10-php8.4-apache`, `10.4.8-php8.4`, `10.4-php8.4`, `10-php8.4`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.4/apache-bookworm/Dockerfile) + +- [`10.4.8-php8.4-fpm-bookworm`, `10.4-php8.4-fpm-bookworm`, `10-php8.4-fpm-bookworm`, `10.4.8-php8.4-fpm`, `10.4-php8.4-fpm`, `10-php8.4-fpm`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.4/fpm-bookworm/Dockerfile) + +- [`10.4.8-php8.4-apache-bullseye`, `10.4-php8.4-apache-bullseye`, `10-php8.4-apache-bullseye`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.4/apache-bullseye/Dockerfile) + +- [`10.4.8-php8.4-fpm-bullseye`, `10.4-php8.4-fpm-bullseye`, `10-php8.4-fpm-bullseye`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.4/fpm-bullseye/Dockerfile) + +- [`10.4.8-php8.4-fpm-alpine3.21`, `10.4-php8.4-fpm-alpine3.21`, `10-php8.4-fpm-alpine3.21`, `10.4.8-php8.4-fpm-alpine`, `10.4-php8.4-fpm-alpine`, `10-php8.4-fpm-alpine`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.4/fpm-alpine3.21/Dockerfile) + +- [`10.4.8-php8.4-fpm-alpine3.20`, `10.4-php8.4-fpm-alpine3.20`, `10-php8.4-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.4/fpm-alpine3.20/Dockerfile) + +- [`10.4.8-php8.3-apache-bookworm`, `10.4-php8.3-apache-bookworm`, `10-php8.3-apache-bookworm`, `10.4.8-php8.3-apache`, `10.4-php8.3-apache`, `10-php8.3-apache`, `10.4.8-php8.3`, `10.4-php8.3`, `10-php8.3`, `10.4.8-apache-bookworm`, `10.4-apache-bookworm`, `10-apache-bookworm`, `10.4.8-apache`, `10.4-apache`, `10-apache`, `10.4.8`, `10.4`, `10`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.3/apache-bookworm/Dockerfile) + +- [`10.4.8-php8.3-fpm-bookworm`, `10.4-php8.3-fpm-bookworm`, `10-php8.3-fpm-bookworm`, `10.4.8-php8.3-fpm`, `10.4-php8.3-fpm`, `10-php8.3-fpm`, `10.4.8-fpm-bookworm`, `10.4-fpm-bookworm`, `10-fpm-bookworm`, `10.4.8-fpm`, `10.4-fpm`, `10-fpm`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.3/fpm-bookworm/Dockerfile) + +- [`10.4.8-php8.3-apache-bullseye`, `10.4-php8.3-apache-bullseye`, `10-php8.3-apache-bullseye`, `10.4.8-apache-bullseye`, `10.4-apache-bullseye`, `10-apache-bullseye`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.3/apache-bullseye/Dockerfile) + +- [`10.4.8-php8.3-fpm-bullseye`, `10.4-php8.3-fpm-bullseye`, `10-php8.3-fpm-bullseye`, `10.4.8-fpm-bullseye`, `10.4-fpm-bullseye`, `10-fpm-bullseye`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.3/fpm-bullseye/Dockerfile) + +- [`10.4.8-php8.3-fpm-alpine3.21`, `10.4-php8.3-fpm-alpine3.21`, `10-php8.3-fpm-alpine3.21`, `10.4.8-php8.3-fpm-alpine`, `10.4-php8.3-fpm-alpine`, `10-php8.3-fpm-alpine`, `10.4.8-fpm-alpine3.21`, `10.4-fpm-alpine3.21`, `10-fpm-alpine3.21`, `10.4.8-fpm-alpine`, `10.4-fpm-alpine`, `10-fpm-alpine`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.3/fpm-alpine3.21/Dockerfile) + +- [`10.4.8-php8.3-fpm-alpine3.20`, `10.4-php8.3-fpm-alpine3.20`, `10-php8.3-fpm-alpine3.20`, `10.4.8-fpm-alpine3.20`, `10.4-fpm-alpine3.20`, `10-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/63c7afc822b8fda0cae483894af5fd495e698144/10.4/php8.3/fpm-alpine3.20/Dockerfile) + +- [`10.3.14-php8.3-apache-bookworm`, `10.3-php8.3-apache-bookworm`, `10.3.14-php8.3-apache`, `10.3-php8.3-apache`, `10.3.14-php8.3`, `10.3-php8.3`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.3/apache-bookworm/Dockerfile) + +- [`10.3.14-php8.3-fpm-bookworm`, `10.3-php8.3-fpm-bookworm`, `10.3.14-php8.3-fpm`, `10.3-php8.3-fpm`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.3/fpm-bookworm/Dockerfile) + +- [`10.3.14-php8.3-apache-bullseye`, `10.3-php8.3-apache-bullseye`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.3/apache-bullseye/Dockerfile) + +- [`10.3.14-php8.3-fpm-bullseye`, `10.3-php8.3-fpm-bullseye`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.3/fpm-bullseye/Dockerfile) + +- [`10.3.14-php8.3-fpm-alpine3.21`, `10.3-php8.3-fpm-alpine3.21`, `10.3.14-php8.3-fpm-alpine`, `10.3-php8.3-fpm-alpine`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.3/fpm-alpine3.21/Dockerfile) + +- [`10.3.14-php8.3-fpm-alpine3.20`, `10.3-php8.3-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.3/fpm-alpine3.20/Dockerfile) + +- [`10.3.14-php8.2-apache-bookworm`, `10.3-php8.2-apache-bookworm`, `10.3.14-php8.2-apache`, `10.3-php8.2-apache`, `10.3.14-php8.2`, `10.3-php8.2`, `10.3.14-apache-bookworm`, `10.3-apache-bookworm`, `10.3.14-apache`, `10.3-apache`, `10.3.14`, `10.3`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.2/apache-bookworm/Dockerfile) + +- [`10.3.14-php8.2-fpm-bookworm`, `10.3-php8.2-fpm-bookworm`, `10.3.14-php8.2-fpm`, `10.3-php8.2-fpm`, `10.3.14-fpm-bookworm`, `10.3-fpm-bookworm`, `10.3.14-fpm`, `10.3-fpm`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.2/fpm-bookworm/Dockerfile) + +- [`10.3.14-php8.2-apache-bullseye`, `10.3-php8.2-apache-bullseye`, `10.3.14-apache-bullseye`, `10.3-apache-bullseye`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.2/apache-bullseye/Dockerfile) + +- [`10.3.14-php8.2-fpm-bullseye`, `10.3-php8.2-fpm-bullseye`, `10.3.14-fpm-bullseye`, `10.3-fpm-bullseye`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.2/fpm-bullseye/Dockerfile) + +- [`10.3.14-php8.2-fpm-alpine3.21`, `10.3-php8.2-fpm-alpine3.21`, `10.3.14-php8.2-fpm-alpine`, `10.3-php8.2-fpm-alpine`, `10.3.14-fpm-alpine3.21`, `10.3-fpm-alpine3.21`, `10.3.14-fpm-alpine`, `10.3-fpm-alpine`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.2/fpm-alpine3.21/Dockerfile) + +- [`10.3.14-php8.2-fpm-alpine3.20`, `10.3-php8.2-fpm-alpine3.20`, `10.3.14-fpm-alpine3.20`, `10.3-fpm-alpine3.20`](https://github.com/docker-library/drupal/blob/8f3ebb5ea454515f31c2ad06221660250016ecb8/10.3/php8.2/fpm-alpine3.20/Dockerfile) # Quick reference (cont.) @@ -89,7 +162,7 @@ WARNING: [https://github.com/docker-library/drupal/issues](https://github.com/docker-library/drupal/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/drupal/), [`arm32v5`](https://hub.docker.com/r/arm32v5/drupal/), [`arm32v6`](https://hub.docker.com/r/arm32v6/drupal/), [`arm32v7`](https://hub.docker.com/r/arm32v7/drupal/), [`arm64v8`](https://hub.docker.com/r/arm64v8/drupal/), [`i386`](https://hub.docker.com/r/i386/drupal/), [`mips64le`](https://hub.docker.com/r/mips64le/drupal/), [`ppc64le`](https://hub.docker.com/r/ppc64le/drupal/), [`s390x`](https://hub.docker.com/r/s390x/drupal/) + [`amd64`](https://hub.docker.com/r/amd64/drupal/), [`arm32v6`](https://hub.docker.com/r/arm32v6/drupal/), [`arm32v7`](https://hub.docker.com/r/arm32v7/drupal/), [`arm64v8`](https://hub.docker.com/r/arm64v8/drupal/), [`i386`](https://hub.docker.com/r/i386/drupal/), [`ppc64le`](https://hub.docker.com/r/ppc64le/drupal/), [`riscv64`](https://hub.docker.com/r/riscv64/drupal/), [`s390x`](https://hub.docker.com/r/s390x/drupal/) - **Published image artifact details**: [repo-info repo's `repos/drupal/` directory](https://github.com/docker-library/repo-info/blob/master/repos/drupal) ([history](https://github.com/docker-library/repo-info/commits/master/repos/drupal)) @@ -202,15 +275,14 @@ $ docker run --name some-drupal --network some-network -d \ drupal ``` -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `drupal`: +Example `compose.yaml` for `drupal`: ```yaml # Drupal with PostgreSQL # # Access via "http://localhost:8080/" -# (or "http://$(docker-machine ip):8080" if using docker-machine) # # During initial Drupal setup, # Database type: PostgreSQL @@ -219,12 +291,10 @@ Example `docker-compose.yml` for `drupal`: # Database password: example # ADVANCED OPTIONS; Database host: postgres -version: '3.1' - services: drupal: - image: drupal:8-apache + image: drupal:10-apache ports: - 8080:80 volumes: @@ -238,15 +308,13 @@ services: restart: always postgres: - image: postgres:10 + image: postgres:16 environment: POSTGRES_PASSWORD: example restart: always ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/f81077b92e4522999836b8c5d098a103f568a431/drupal/stack.yml) - -Run `docker stack deploy -c stack.yml drupal` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). When installing select `postgres` as database with the following parameters: `dbname=postgres` `user=postgres` `pass=example` `hostname=postgres` +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). When installing select `postgres` as database with the following parameters: `dbname=postgres` `user=postgres` `pass=example` `hostname=postgres` ## Adding additional libraries / extensions @@ -270,19 +338,19 @@ The `drupal` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like bookworm, bullseye, or buster 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. +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. ## `drupal:-fpm` -This variant contains PHP-FPM, which is a FastCGI implementation for PHP. See [the PHP-FPM website](https://php-fpm.org/) for more information about PHP-FPM. +This variant contains [PHP's FastCGI Process Manager (FPM)](https://www.php.net/fpm), which is the recommended FastCGI implementation for PHP. In order to use this image variant, some kind of reverse proxy (such as NGINX, Apache, or other tool which speaks the FastCGI protocol) will be required. Some potentially helpful resources: -- [PHP-FPM.org](https://php-fpm.org/) -- [simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) -- [very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) +- [FPM's Official Configuration Reference](https://www.php.net/manual/en/install.fpm.configuration.php) +- [Simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) +- [Very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) - [Stack Overflow discussion](https://stackoverflow.com/q/29905953/433558) - [Apache httpd Wiki example](https://wiki.apache.org/httpd/PHPFPMWordpress) diff --git a/drupal/stack.yml b/drupal/compose.yaml similarity index 84% rename from drupal/stack.yml rename to drupal/compose.yaml index 4823d863d8b3..ef31c50aeced 100644 --- a/drupal/stack.yml +++ b/drupal/compose.yaml @@ -1,7 +1,6 @@ # Drupal with PostgreSQL # # Access via "http://localhost:8080/" -# (or "http://$(docker-machine ip):8080" if using docker-machine) # # During initial Drupal setup, # Database type: PostgreSQL @@ -10,12 +9,10 @@ # Database password: example # ADVANCED OPTIONS; Database host: postgres -version: '3.1' - services: drupal: - image: drupal:8-apache + image: drupal:10-apache ports: - 8080:80 volumes: @@ -29,7 +26,7 @@ services: restart: always postgres: - image: postgres:10 + image: postgres:16 environment: POSTGRES_PASSWORD: example restart: always diff --git a/drupal/content.md b/drupal/content.md index f42a91fedcba..bb0b00b51fd4 100644 --- a/drupal/content.md +++ b/drupal/content.md @@ -98,9 +98,9 @@ $ docker run --name some-%%REPO%% --network some-network -d \ %%IMAGE%% ``` -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). When installing select `postgres` as database with the following parameters: `dbname=postgres` `user=postgres` `pass=example` `hostname=postgres` +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). When installing select `postgres` as database with the following parameters: `dbname=postgres` `user=postgres` `pass=example` `hostname=postgres` ## Adding additional libraries / extensions diff --git a/drupal/metadata.json b/drupal/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/drupal/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/eclipse-mosquitto/README.md b/eclipse-mosquitto/README.md index 42a8fbed2658..89851826786b 100644 --- a/eclipse-mosquitto/README.md +++ b/eclipse-mosquitto/README.md @@ -24,9 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`2.0.18`, `2.0`, `2`, `latest`](https://github.com/eclipse/mosquitto/blob/f4400fa422eacac8417efbc45dd1284526dce8d4/docker/2.0/Dockerfile) -- [`2.0.18-openssl`, `2.0-openssl`, `2-openssl`, `openssl`](https://github.com/eclipse/mosquitto/blob/f4400fa422eacac8417efbc45dd1284526dce8d4/docker/2.0-openssl/Dockerfile) -- [`1.6.15-openssl`, `1.6-openssl`](https://github.com/eclipse/mosquitto/blob/f4400fa422eacac8417efbc45dd1284526dce8d4/docker/1.6-openssl/Dockerfile) +- [`2.0.21`, `2.0.21-openssl`, `2.0`, `2.0-openssl`, `2`, `2-openssl`, `openssl`, `latest`](https://github.com/eclipse/mosquitto/blob/2c671de72a0aebff0f3896a1b7dab2f2dfe51c26/docker/2.0-openssl/Dockerfile) + +- [`1.6.15-openssl`, `1.6-openssl`](https://github.com/eclipse/mosquitto/blob/2c671de72a0aebff0f3896a1b7dab2f2dfe51c26/docker/1.6-openssl/Dockerfile) # Quick reference (cont.) @@ -49,10 +49,14 @@ WARNING: # What is Eclipse Mosquitto? -Eclipse Mosquitto is an open source implementation of a server for versions 5, 3.1.1, and 3.1 of the MQTT protocol. Main homepages: http://mosquitto.org/ +Eclipse Mosquitto is an open source implementation of a server for versions 5, 3.1.1, and 3.1 of the MQTT protocol. Main homepage: http://mosquitto.org/ ![logo](https://raw.githubusercontent.com/docker-library/docs/757578e3a44e5460a8a11d32a81776f8b74231a9/eclipse-mosquitto/logo.png) +# Eclipse Mosquitto and Cedalo + +[Cedalo](https://cedalo.com/?utm_source=docker-mosquitto&utm_medium=text&utm_campaign=cedalo-name) provides commercial support, enterprise MQTT products, professional services and training for Eclipse Mosquitto. + # How to use this image ## Directories @@ -63,12 +67,14 @@ Three directories have been created in the image to be used for configuration, p /mosquitto/data /mosquitto/log +It is suggested to mirror this structure for your local configuration. + ## Configuration -When running the image, the default configuration values are used. To use a custom configuration file, mount a **local** configuration file to `/mosquitto/config/mosquitto.conf` +When running the image, the default configuration values are used. To use a custom configuration file, create your mosquitto.conf in `$PWD/mosquitto/config/mosquitto.conf`, then mount the config directory to `/mosquitto/config`. ```console -$ docker run -it -p 1883:1883 -p 9001:9001 -v mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto +$ docker run -it -p 1883:1883 -v "$PWD/mosquitto/config:/mosquitto/config" eclipse-mosquitto ``` Configuration can be changed to: @@ -89,14 +95,26 @@ i.e. add the following to `mosquitto.conf`: Run a container using the new image: ```console -$ docker run -it -p 1883:1883 -p 9001:9001 -v mosquitto.conf:/mosquitto/config/mosquitto.conf -v /mosquitto/data -v /mosquitto/log eclipse-mosquitto +$ docker run -it -p 1883:1883 -v "$PWD/mosquitto/config:/mosquitto/config" -v /mosquitto/data -v /mosquitto/log eclipse-mosquitto +``` + +or: + +```console +$ docker run -it -p 1883:1883 -v "$PWD/mosquitto/config:/mosquitto/config" -v "$PWD/mosquitto/data:/mosquitto/data" -v "$PWD/mosquitto/log:/mosquitto/log" eclipse-mosquitto ``` **Note**: if the mosquitto configuration (mosquitto.conf) was modified to use non-default ports, the docker run command will need to be updated to expose the ports that have been configured. +For example, if you use port 1883 and port 8080: + +```console +$ docker run -it -p 1883:1883 -p 8080:8080 -v "$PWD/mosquitto/config:/mosquitto/config" eclipse-mosquitto +``` + # License -Eclipse Mosquitto is released under the [EPL](https://www.eclipse.org/legal/epl-v10.html)/[EDL](https://eclipse.org/org/documents/edl-v10.php) +Eclipse Mosquitto is released under the [EPL](https://www.eclipse.org/legal/epl-v20.html)/[EDL](https://eclipse.org/org/documents/edl-v10.php) 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). diff --git a/eclipse-mosquitto/content.md b/eclipse-mosquitto/content.md index 98b62e76b11d..0a6adf717d93 100644 --- a/eclipse-mosquitto/content.md +++ b/eclipse-mosquitto/content.md @@ -1,9 +1,13 @@ # What is Eclipse Mosquitto? -Eclipse Mosquitto is an open source implementation of a server for versions 5, 3.1.1, and 3.1 of the MQTT protocol. Main homepages: http://mosquitto.org/ +Eclipse Mosquitto is an open source implementation of a server for versions 5, 3.1.1, and 3.1 of the MQTT protocol. Main homepage: http://mosquitto.org/ %%LOGO%% +# Eclipse Mosquitto and Cedalo + +[Cedalo](https://cedalo.com/?utm_source=docker-mosquitto&utm_medium=text&utm_campaign=cedalo-name) provides commercial support, enterprise MQTT products, professional services and training for Eclipse Mosquitto. + # How to use this image ## Directories @@ -14,12 +18,14 @@ Three directories have been created in the image to be used for configuration, p /mosquitto/data /mosquitto/log +It is suggested to mirror this structure for your local configuration. + ## Configuration -When running the image, the default configuration values are used. To use a custom configuration file, mount a **local** configuration file to `/mosquitto/config/mosquitto.conf` +When running the image, the default configuration values are used. To use a custom configuration file, create your mosquitto.conf in `$PWD/mosquitto/config/mosquitto.conf`, then mount the config directory to `/mosquitto/config`. ```console -$ docker run -it -p 1883:1883 -p 9001:9001 -v mosquitto.conf:/mosquitto/config/mosquitto.conf %%IMAGE%% +$ docker run -it -p 1883:1883 -v "$PWD/mosquitto/config:/mosquitto/config" %%IMAGE%% ``` Configuration can be changed to: @@ -40,7 +46,19 @@ i.e. add the following to `mosquitto.conf`: Run a container using the new image: ```console -$ docker run -it -p 1883:1883 -p 9001:9001 -v mosquitto.conf:/mosquitto/config/mosquitto.conf -v /mosquitto/data -v /mosquitto/log %%IMAGE%% +$ docker run -it -p 1883:1883 -v "$PWD/mosquitto/config:/mosquitto/config" -v /mosquitto/data -v /mosquitto/log %%IMAGE%% +``` + +or: + +```console +$ docker run -it -p 1883:1883 -v "$PWD/mosquitto/config:/mosquitto/config" -v "$PWD/mosquitto/data:/mosquitto/data" -v "$PWD/mosquitto/log:/mosquitto/log" %%IMAGE%% ``` **Note**: if the mosquitto configuration (mosquitto.conf) was modified to use non-default ports, the docker run command will need to be updated to expose the ports that have been configured. + +For example, if you use port 1883 and port 8080: + +```console +$ docker run -it -p 1883:1883 -p 8080:8080 -v "$PWD/mosquitto/config:/mosquitto/config" %%IMAGE%% +``` diff --git a/eclipse-mosquitto/license.md b/eclipse-mosquitto/license.md index 87d41d6b9caf..069f3ad5c8de 100644 --- a/eclipse-mosquitto/license.md +++ b/eclipse-mosquitto/license.md @@ -1 +1 @@ -Eclipse Mosquitto is released under the [EPL](https://www.eclipse.org/legal/epl-v10.html)/[EDL](https://eclipse.org/org/documents/edl-v10.php) +Eclipse Mosquitto is released under the [EPL](https://www.eclipse.org/legal/epl-v20.html)/[EDL](https://eclipse.org/org/documents/edl-v10.php) diff --git a/eclipse-mosquitto/metadata.json b/eclipse-mosquitto/metadata.json new file mode 100644 index 000000000000..adaed340122a --- /dev/null +++ b/eclipse-mosquitto/metadata.json @@ -0,0 +1,8 @@ +{ + "hub": { + "categories": [ + "internet-of-things", + "message-queues" + ] + } +} diff --git a/eclipse-temurin/README.md b/eclipse-temurin/README.md index ec2f58c12fe7..a61018db8296 100644 --- a/eclipse-temurin/README.md +++ b/eclipse-temurin/README.md @@ -28,157 +28,355 @@ WARNING: ## Simple Tags -- [`8u392-b08-jdk-alpine`, `8-jdk-alpine`, `8-alpine`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/alpine/Dockerfile) -- [`8u392-b08-jdk-focal`, `8-jdk-focal`, `8-focal`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/ubuntu/focal/Dockerfile) -- [`8u392-b08-jdk-jammy`, `8-jdk-jammy`, `8-jammy`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/ubuntu/jammy/Dockerfile) -- [`8u392-b08-jdk-centos7`, `8-jdk-centos7`, `8-centos7`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/centos/Dockerfile) -- [`8u392-b08-jdk-ubi9-minimal`, `8-jdk-ubi9-minimal`, `8-ubi9-minimal`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/ubi/ubi9-minimal/Dockerfile) -- [`8u392-b08-jdk-windowsservercore-ltsc2022`, `8-jdk-windowsservercore-ltsc2022`, `8-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/windowsservercore-ltsc2022/Dockerfile) -- [`8u392-b08-jdk-nanoserver-ltsc2022`, `8-jdk-nanoserver-ltsc2022`, `8-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/nanoserver-ltsc2022/Dockerfile) -- [`8u392-b08-jdk-windowsservercore-1809`, `8-jdk-windowsservercore-1809`, `8-windowsservercore-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/windowsservercore-1809/Dockerfile) -- [`8u392-b08-jdk-nanoserver-1809`, `8-jdk-nanoserver-1809`, `8-nanoserver-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/nanoserver-1809/Dockerfile) -- [`8u392-b08-jre-alpine`, `8-jre-alpine`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/alpine/Dockerfile) -- [`8u392-b08-jre-focal`, `8-jre-focal`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/ubuntu/focal/Dockerfile) -- [`8u392-b08-jre-jammy`, `8-jre-jammy`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/ubuntu/jammy/Dockerfile) -- [`8u392-b08-jre-centos7`, `8-jre-centos7`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/centos/Dockerfile) -- [`8u392-b08-jre-ubi9-minimal`, `8-jre-ubi9-minimal`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/ubi/ubi9-minimal/Dockerfile) -- [`8u392-b08-jre-windowsservercore-ltsc2022`, `8-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/windowsservercore-ltsc2022/Dockerfile) -- [`8u392-b08-jre-nanoserver-ltsc2022`, `8-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/nanoserver-ltsc2022/Dockerfile) -- [`8u392-b08-jre-windowsservercore-1809`, `8-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/windowsservercore-1809/Dockerfile) -- [`8u392-b08-jre-nanoserver-1809`, `8-jre-nanoserver-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/nanoserver-1809/Dockerfile) -- [`11.0.21_9-jdk-alpine`, `11-jdk-alpine`, `11-alpine`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/alpine/Dockerfile) -- [`11.0.21_9-jdk-focal`, `11-jdk-focal`, `11-focal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/ubuntu/focal/Dockerfile) -- [`11.0.21_9-jdk-jammy`, `11-jdk-jammy`, `11-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/ubuntu/jammy/Dockerfile) -- [`11.0.21_9-jdk-centos7`, `11-jdk-centos7`, `11-centos7`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/centos/Dockerfile) -- [`11.0.21_9-jdk-ubi9-minimal`, `11-jdk-ubi9-minimal`, `11-ubi9-minimal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/ubi/ubi9-minimal/Dockerfile) -- [`11.0.21_9-jdk-windowsservercore-ltsc2022`, `11-jdk-windowsservercore-ltsc2022`, `11-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/windowsservercore-ltsc2022/Dockerfile) -- [`11.0.21_9-jdk-nanoserver-ltsc2022`, `11-jdk-nanoserver-ltsc2022`, `11-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/nanoserver-ltsc2022/Dockerfile) -- [`11.0.21_9-jdk-windowsservercore-1809`, `11-jdk-windowsservercore-1809`, `11-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/windowsservercore-1809/Dockerfile) -- [`11.0.21_9-jdk-nanoserver-1809`, `11-jdk-nanoserver-1809`, `11-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/nanoserver-1809/Dockerfile) -- [`11.0.21_9-jre-alpine`, `11-jre-alpine`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/alpine/Dockerfile) -- [`11.0.21_9-jre-focal`, `11-jre-focal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/ubuntu/focal/Dockerfile) -- [`11.0.21_9-jre-jammy`, `11-jre-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/ubuntu/jammy/Dockerfile) -- [`11.0.21_9-jre-centos7`, `11-jre-centos7`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/centos/Dockerfile) -- [`11.0.21_9-jre-ubi9-minimal`, `11-jre-ubi9-minimal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/ubi/ubi9-minimal/Dockerfile) -- [`11.0.21_9-jre-windowsservercore-ltsc2022`, `11-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/windowsservercore-ltsc2022/Dockerfile) -- [`11.0.21_9-jre-nanoserver-ltsc2022`, `11-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/nanoserver-ltsc2022/Dockerfile) -- [`11.0.21_9-jre-windowsservercore-1809`, `11-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/windowsservercore-1809/Dockerfile) -- [`11.0.21_9-jre-nanoserver-1809`, `11-jre-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/nanoserver-1809/Dockerfile) -- [`17.0.9_9-jdk-alpine`, `17-jdk-alpine`, `17-alpine`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/alpine/Dockerfile) -- [`17.0.9_9-jdk-focal`, `17-jdk-focal`, `17-focal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/ubuntu/focal/Dockerfile) -- [`17.0.9_9-jdk-jammy`, `17-jdk-jammy`, `17-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/ubuntu/jammy/Dockerfile) -- [`17.0.9_9-jdk-centos7`, `17-jdk-centos7`, `17-centos7`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/centos/Dockerfile) -- [`17.0.9_9-jdk-ubi9-minimal`, `17-jdk-ubi9-minimal`, `17-ubi9-minimal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/ubi/ubi9-minimal/Dockerfile) -- [`17.0.9_9-jdk-windowsservercore-ltsc2022`, `17-jdk-windowsservercore-ltsc2022`, `17-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/windowsservercore-ltsc2022/Dockerfile) -- [`17.0.9_9-jdk-nanoserver-ltsc2022`, `17-jdk-nanoserver-ltsc2022`, `17-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/nanoserver-ltsc2022/Dockerfile) -- [`17.0.9_9-jdk-windowsservercore-1809`, `17-jdk-windowsservercore-1809`, `17-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/windowsservercore-1809/Dockerfile) -- [`17.0.9_9-jdk-nanoserver-1809`, `17-jdk-nanoserver-1809`, `17-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/nanoserver-1809/Dockerfile) -- [`17.0.9_9-jre-alpine`, `17-jre-alpine`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/alpine/Dockerfile) -- [`17.0.9_9-jre-focal`, `17-jre-focal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/ubuntu/focal/Dockerfile) -- [`17.0.9_9-jre-jammy`, `17-jre-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/ubuntu/jammy/Dockerfile) -- [`17.0.9_9-jre-centos7`, `17-jre-centos7`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/centos/Dockerfile) -- [`17.0.9_9-jre-ubi9-minimal`, `17-jre-ubi9-minimal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/ubi/ubi9-minimal/Dockerfile) -- [`17.0.9_9-jre-windowsservercore-ltsc2022`, `17-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/windowsservercore-ltsc2022/Dockerfile) -- [`17.0.9_9-jre-nanoserver-ltsc2022`, `17-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/nanoserver-ltsc2022/Dockerfile) -- [`17.0.9_9-jre-windowsservercore-1809`, `17-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/windowsservercore-1809/Dockerfile) -- [`17.0.9_9-jre-nanoserver-1809`, `17-jre-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/nanoserver-1809/Dockerfile) -- [`21.0.1_12-jdk-alpine`, `21-jdk-alpine`, `21-alpine`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/alpine/Dockerfile) -- [`21.0.1_12-jdk-jammy`, `21-jdk-jammy`, `21-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/ubuntu/jammy/Dockerfile) -- [`21.0.1_12-jdk-ubi9-minimal`, `21-jdk-ubi9-minimal`, `21-ubi9-minimal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/ubi/ubi9-minimal/Dockerfile) -- [`21.0.1_12-jdk-windowsservercore-ltsc2022`, `21-jdk-windowsservercore-ltsc2022`, `21-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/windowsservercore-ltsc2022/Dockerfile) -- [`21.0.1_12-jdk-nanoserver-ltsc2022`, `21-jdk-nanoserver-ltsc2022`, `21-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/nanoserver-ltsc2022/Dockerfile) -- [`21.0.1_12-jdk-windowsservercore-1809`, `21-jdk-windowsservercore-1809`, `21-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/windowsservercore-1809/Dockerfile) -- [`21.0.1_12-jdk-nanoserver-1809`, `21-jdk-nanoserver-1809`, `21-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/nanoserver-1809/Dockerfile) -- [`21.0.1_12-jre-alpine`, `21-jre-alpine`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/alpine/Dockerfile) -- [`21.0.1_12-jre-jammy`, `21-jre-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/ubuntu/jammy/Dockerfile) -- [`21.0.1_12-jre-ubi9-minimal`, `21-jre-ubi9-minimal`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/ubi/ubi9-minimal/Dockerfile) -- [`21.0.1_12-jre-windowsservercore-ltsc2022`, `21-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/windowsservercore-ltsc2022/Dockerfile) -- [`21.0.1_12-jre-nanoserver-ltsc2022`, `21-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/nanoserver-ltsc2022/Dockerfile) -- [`21.0.1_12-jre-windowsservercore-1809`, `21-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/windowsservercore-1809/Dockerfile) -- [`21.0.1_12-jre-nanoserver-1809`, `21-jre-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/nanoserver-1809/Dockerfile) +- [`8u452-b09-jdk-alpine-3.20`, `8-jdk-alpine-3.20`, `8-alpine-3.20`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/alpine/3.20/Dockerfile) + +- [`8u452-b09-jdk-alpine-3.21`, `8-jdk-alpine-3.21`, `8-alpine-3.21`, `8u452-b09-jdk-alpine`, `8-jdk-alpine`, `8-alpine`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/alpine/3.21/Dockerfile) + +- [`8u452-b09-jdk-focal`, `8-jdk-focal`, `8-focal`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/ubuntu/focal/Dockerfile) + +- [`8u452-b09-jdk-jammy`, `8-jdk-jammy`, `8-jammy`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/ubuntu/jammy/Dockerfile) + +- [`8u452-b09-jdk-noble`, `8-jdk-noble`, `8-noble`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/ubuntu/noble/Dockerfile) + +- [`8u452-b09-jdk-ubi9-minimal`, `8-jdk-ubi9-minimal`, `8-ubi9-minimal`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/ubi/ubi9-minimal/Dockerfile) + +- [`8u452-b09-jdk-windowsservercore-ltsc2025`, `8-jdk-windowsservercore-ltsc2025`, `8-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`8u452-b09-jdk-nanoserver-ltsc2025`, `8-jdk-nanoserver-ltsc2025`, `8-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/nanoserver-ltsc2025/Dockerfile) + +- [`8u452-b09-jdk-windowsservercore-ltsc2022`, `8-jdk-windowsservercore-ltsc2022`, `8-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`8u452-b09-jdk-nanoserver-ltsc2022`, `8-jdk-nanoserver-ltsc2022`, `8-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- [`8u452-b09-jre-alpine-3.20`, `8-jre-alpine-3.20`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/alpine/3.20/Dockerfile) + +- [`8u452-b09-jre-alpine-3.21`, `8-jre-alpine-3.21`, `8u452-b09-jre-alpine`, `8-jre-alpine`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/alpine/3.21/Dockerfile) + +- [`8u452-b09-jre-focal`, `8-jre-focal`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/ubuntu/focal/Dockerfile) + +- [`8u452-b09-jre-jammy`, `8-jre-jammy`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/ubuntu/jammy/Dockerfile) + +- [`8u452-b09-jre-noble`, `8-jre-noble`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/ubuntu/noble/Dockerfile) + +- [`8u452-b09-jre-ubi9-minimal`, `8-jre-ubi9-minimal`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/ubi/ubi9-minimal/Dockerfile) + +- [`8u452-b09-jre-windowsservercore-ltsc2025`, `8-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`8u452-b09-jre-nanoserver-ltsc2025`, `8-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/nanoserver-ltsc2025/Dockerfile) + +- [`8u452-b09-jre-windowsservercore-ltsc2022`, `8-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`8u452-b09-jre-nanoserver-ltsc2022`, `8-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/nanoserver-ltsc2022/Dockerfile) + +- [`11.0.27_6-jdk-alpine-3.20`, `11-jdk-alpine-3.20`, `11-alpine-3.20`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/alpine/3.20/Dockerfile) + +- [`11.0.27_6-jdk-alpine-3.21`, `11-jdk-alpine-3.21`, `11-alpine-3.21`, `11.0.27_6-jdk-alpine`, `11-jdk-alpine`, `11-alpine`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/alpine/3.21/Dockerfile) + +- [`11.0.27_6-jdk-focal`, `11-jdk-focal`, `11-focal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/ubuntu/focal/Dockerfile) + +- [`11.0.27_6-jdk-jammy`, `11-jdk-jammy`, `11-jammy`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/ubuntu/jammy/Dockerfile) + +- [`11.0.27_6-jdk-noble`, `11-jdk-noble`, `11-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/ubuntu/noble/Dockerfile) + +- [`11.0.27_6-jdk-ubi9-minimal`, `11-jdk-ubi9-minimal`, `11-ubi9-minimal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/ubi/ubi9-minimal/Dockerfile) + +- [`11.0.27_6-jdk-windowsservercore-ltsc2025`, `11-jdk-windowsservercore-ltsc2025`, `11-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`11.0.27_6-jdk-nanoserver-ltsc2025`, `11-jdk-nanoserver-ltsc2025`, `11-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/nanoserver-ltsc2025/Dockerfile) + +- [`11.0.27_6-jdk-windowsservercore-ltsc2022`, `11-jdk-windowsservercore-ltsc2022`, `11-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`11.0.27_6-jdk-nanoserver-ltsc2022`, `11-jdk-nanoserver-ltsc2022`, `11-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- [`11.0.27_6-jre-alpine-3.20`, `11-jre-alpine-3.20`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/alpine/3.20/Dockerfile) + +- [`11.0.27_6-jre-alpine-3.21`, `11-jre-alpine-3.21`, `11.0.27_6-jre-alpine`, `11-jre-alpine`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/alpine/3.21/Dockerfile) + +- [`11.0.27_6-jre-focal`, `11-jre-focal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/ubuntu/focal/Dockerfile) + +- [`11.0.27_6-jre-jammy`, `11-jre-jammy`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/ubuntu/jammy/Dockerfile) + +- [`11.0.27_6-jre-noble`, `11-jre-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/ubuntu/noble/Dockerfile) + +- [`11.0.27_6-jre-ubi9-minimal`, `11-jre-ubi9-minimal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/ubi/ubi9-minimal/Dockerfile) + +- [`11.0.27_6-jre-windowsservercore-ltsc2025`, `11-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`11.0.27_6-jre-nanoserver-ltsc2025`, `11-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/nanoserver-ltsc2025/Dockerfile) + +- [`11.0.27_6-jre-windowsservercore-ltsc2022`, `11-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`11.0.27_6-jre-nanoserver-ltsc2022`, `11-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/nanoserver-ltsc2022/Dockerfile) + +- [`17.0.15_6-jdk-alpine-3.20`, `17-jdk-alpine-3.20`, `17-alpine-3.20`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/alpine/3.20/Dockerfile) + +- [`17.0.15_6-jdk-alpine-3.21`, `17-jdk-alpine-3.21`, `17-alpine-3.21`, `17.0.15_6-jdk-alpine`, `17-jdk-alpine`, `17-alpine`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/alpine/3.21/Dockerfile) + +- [`17.0.15_6-jdk-focal`, `17-jdk-focal`, `17-focal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/ubuntu/focal/Dockerfile) + +- [`17.0.15_6-jdk-jammy`, `17-jdk-jammy`, `17-jammy`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/ubuntu/jammy/Dockerfile) + +- [`17.0.15_6-jdk-noble`, `17-jdk-noble`, `17-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/ubuntu/noble/Dockerfile) + +- [`17.0.15_6-jdk-ubi9-minimal`, `17-jdk-ubi9-minimal`, `17-ubi9-minimal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/ubi/ubi9-minimal/Dockerfile) + +- [`17.0.15_6-jdk-windowsservercore-ltsc2025`, `17-jdk-windowsservercore-ltsc2025`, `17-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`17.0.15_6-jdk-nanoserver-ltsc2025`, `17-jdk-nanoserver-ltsc2025`, `17-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/nanoserver-ltsc2025/Dockerfile) + +- [`17.0.15_6-jdk-windowsservercore-ltsc2022`, `17-jdk-windowsservercore-ltsc2022`, `17-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`17.0.15_6-jdk-nanoserver-ltsc2022`, `17-jdk-nanoserver-ltsc2022`, `17-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- [`17.0.15_6-jre-alpine-3.20`, `17-jre-alpine-3.20`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/alpine/3.20/Dockerfile) + +- [`17.0.15_6-jre-alpine-3.21`, `17-jre-alpine-3.21`, `17.0.15_6-jre-alpine`, `17-jre-alpine`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/alpine/3.21/Dockerfile) + +- [`17.0.15_6-jre-focal`, `17-jre-focal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/ubuntu/focal/Dockerfile) + +- [`17.0.15_6-jre-jammy`, `17-jre-jammy`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/ubuntu/jammy/Dockerfile) + +- [`17.0.15_6-jre-noble`, `17-jre-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/ubuntu/noble/Dockerfile) + +- [`17.0.15_6-jre-ubi9-minimal`, `17-jre-ubi9-minimal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/ubi/ubi9-minimal/Dockerfile) + +- [`17.0.15_6-jre-windowsservercore-ltsc2025`, `17-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`17.0.15_6-jre-nanoserver-ltsc2025`, `17-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/nanoserver-ltsc2025/Dockerfile) + +- [`17.0.15_6-jre-windowsservercore-ltsc2022`, `17-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`17.0.15_6-jre-nanoserver-ltsc2022`, `17-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/nanoserver-ltsc2022/Dockerfile) + +- [`21.0.7_6-jdk-alpine-3.20`, `21-jdk-alpine-3.20`, `21-alpine-3.20`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/alpine/3.20/Dockerfile) + +- [`21.0.7_6-jdk-alpine-3.21`, `21-jdk-alpine-3.21`, `21-alpine-3.21`, `21.0.7_6-jdk-alpine`, `21-jdk-alpine`, `21-alpine`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/alpine/3.21/Dockerfile) + +- [`21.0.7_6-jdk-jammy`, `21-jdk-jammy`, `21-jammy`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/ubuntu/jammy/Dockerfile) + +- [`21.0.7_6-jdk-noble`, `21-jdk-noble`, `21-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/ubuntu/noble/Dockerfile) + +- [`21.0.7_6-jdk-ubi9-minimal`, `21-jdk-ubi9-minimal`, `21-ubi9-minimal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/ubi/ubi9-minimal/Dockerfile) + +- [`21.0.7_6-jdk-windowsservercore-ltsc2025`, `21-jdk-windowsservercore-ltsc2025`, `21-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`21.0.7_6-jdk-nanoserver-ltsc2025`, `21-jdk-nanoserver-ltsc2025`, `21-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/nanoserver-ltsc2025/Dockerfile) + +- [`21.0.7_6-jdk-windowsservercore-ltsc2022`, `21-jdk-windowsservercore-ltsc2022`, `21-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`21.0.7_6-jdk-nanoserver-ltsc2022`, `21-jdk-nanoserver-ltsc2022`, `21-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- [`21.0.7_6-jre-alpine-3.20`, `21-jre-alpine-3.20`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/alpine/3.20/Dockerfile) + +- [`21.0.7_6-jre-alpine-3.21`, `21-jre-alpine-3.21`, `21.0.7_6-jre-alpine`, `21-jre-alpine`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/alpine/3.21/Dockerfile) + +- [`21.0.7_6-jre-jammy`, `21-jre-jammy`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/ubuntu/jammy/Dockerfile) + +- [`21.0.7_6-jre-noble`, `21-jre-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/ubuntu/noble/Dockerfile) + +- [`21.0.7_6-jre-ubi9-minimal`, `21-jre-ubi9-minimal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/ubi/ubi9-minimal/Dockerfile) + +- [`21.0.7_6-jre-windowsservercore-ltsc2025`, `21-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`21.0.7_6-jre-nanoserver-ltsc2025`, `21-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/nanoserver-ltsc2025/Dockerfile) + +- [`21.0.7_6-jre-windowsservercore-ltsc2022`, `21-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`21.0.7_6-jre-nanoserver-ltsc2022`, `21-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/nanoserver-ltsc2022/Dockerfile) + +- [`24.0.1_9-jdk-alpine-3.20`, `24-jdk-alpine-3.20`, `24-alpine-3.20`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/alpine/3.20/Dockerfile) + +- [`24.0.1_9-jdk-alpine-3.21`, `24-jdk-alpine-3.21`, `24-alpine-3.21`, `24.0.1_9-jdk-alpine`, `24-jdk-alpine`, `24-alpine`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/alpine/3.21/Dockerfile) + +- [`24.0.1_9-jdk-noble`, `24-jdk-noble`, `24-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/ubuntu/noble/Dockerfile) + +- [`24.0.1_9-jdk-ubi9-minimal`, `24-jdk-ubi9-minimal`, `24-ubi9-minimal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/ubi/ubi9-minimal/Dockerfile) + +- [`24.0.1_9-jdk-windowsservercore-ltsc2025`, `24-jdk-windowsservercore-ltsc2025`, `24-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`24.0.1_9-jdk-nanoserver-ltsc2025`, `24-jdk-nanoserver-ltsc2025`, `24-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/nanoserver-ltsc2025/Dockerfile) + +- [`24.0.1_9-jdk-windowsservercore-ltsc2022`, `24-jdk-windowsservercore-ltsc2022`, `24-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`24.0.1_9-jdk-nanoserver-ltsc2022`, `24-jdk-nanoserver-ltsc2022`, `24-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- [`24.0.1_9-jre-alpine-3.20`, `24-jre-alpine-3.20`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/alpine/3.20/Dockerfile) + +- [`24.0.1_9-jre-alpine-3.21`, `24-jre-alpine-3.21`, `24.0.1_9-jre-alpine`, `24-jre-alpine`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/alpine/3.21/Dockerfile) + +- [`24.0.1_9-jre-noble`, `24-jre-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/ubuntu/noble/Dockerfile) + +- [`24.0.1_9-jre-ubi9-minimal`, `24-jre-ubi9-minimal`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/ubi/ubi9-minimal/Dockerfile) + +- [`24.0.1_9-jre-windowsservercore-ltsc2025`, `24-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`24.0.1_9-jre-nanoserver-ltsc2025`, `24-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/nanoserver-ltsc2025/Dockerfile) + +- [`24.0.1_9-jre-windowsservercore-ltsc2022`, `24-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`24.0.1_9-jre-nanoserver-ltsc2022`, `24-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/nanoserver-ltsc2022/Dockerfile) ## Shared Tags -- `8u392-b08-jdk`, `8-jdk`, `8`: - - [`8u392-b08-jdk-jammy`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/ubuntu/jammy/Dockerfile) - - [`8u392-b08-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`8u392-b08-jdk-windowsservercore-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/windowsservercore-1809/Dockerfile) -- `8u392-b08-jdk-windowsservercore`, `8-jdk-windowsservercore`, `8-windowsservercore`: - - [`8u392-b08-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`8u392-b08-jdk-windowsservercore-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/windowsservercore-1809/Dockerfile) -- `8u392-b08-jdk-nanoserver`, `8-jdk-nanoserver`, `8-nanoserver`: - - [`8u392-b08-jdk-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/nanoserver-ltsc2022/Dockerfile) - - [`8u392-b08-jdk-nanoserver-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jdk/windows/nanoserver-1809/Dockerfile) -- `8u392-b08-jre`, `8-jre`: - - [`8u392-b08-jre-jammy`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/ubuntu/jammy/Dockerfile) - - [`8u392-b08-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/windowsservercore-ltsc2022/Dockerfile) - - [`8u392-b08-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/windowsservercore-1809/Dockerfile) -- `8u392-b08-jre-windowsservercore`, `8-jre-windowsservercore`: - - [`8u392-b08-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/windowsservercore-ltsc2022/Dockerfile) - - [`8u392-b08-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/windowsservercore-1809/Dockerfile) -- `8u392-b08-jre-nanoserver`, `8-jre-nanoserver`: - - [`8u392-b08-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/nanoserver-ltsc2022/Dockerfile) - - [`8u392-b08-jre-nanoserver-1809`](https://github.com/adoptium/containers/blob/376294c245eba65108cee487ce209f39c15e84c8/8/jre/windows/nanoserver-1809/Dockerfile) -- `11.0.21_9-jdk`, `11-jdk`, `11`: - - [`11.0.21_9-jdk-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/ubuntu/jammy/Dockerfile) - - [`11.0.21_9-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`11.0.21_9-jdk-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/windowsservercore-1809/Dockerfile) -- `11.0.21_9-jdk-windowsservercore`, `11-jdk-windowsservercore`, `11-windowsservercore`: - - [`11.0.21_9-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`11.0.21_9-jdk-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/windowsservercore-1809/Dockerfile) -- `11.0.21_9-jdk-nanoserver`, `11-jdk-nanoserver`, `11-nanoserver`: - - [`11.0.21_9-jdk-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/nanoserver-ltsc2022/Dockerfile) - - [`11.0.21_9-jdk-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jdk/windows/nanoserver-1809/Dockerfile) -- `11.0.21_9-jre`, `11-jre`: - - [`11.0.21_9-jre-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/ubuntu/jammy/Dockerfile) - - [`11.0.21_9-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/windowsservercore-ltsc2022/Dockerfile) - - [`11.0.21_9-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/windowsservercore-1809/Dockerfile) -- `11.0.21_9-jre-windowsservercore`, `11-jre-windowsservercore`: - - [`11.0.21_9-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/windowsservercore-ltsc2022/Dockerfile) - - [`11.0.21_9-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/windowsservercore-1809/Dockerfile) -- `11.0.21_9-jre-nanoserver`, `11-jre-nanoserver`: - - [`11.0.21_9-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/nanoserver-ltsc2022/Dockerfile) - - [`11.0.21_9-jre-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/11/jre/windows/nanoserver-1809/Dockerfile) -- `17.0.9_9-jdk`, `17-jdk`, `17`: - - [`17.0.9_9-jdk-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/ubuntu/jammy/Dockerfile) - - [`17.0.9_9-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`17.0.9_9-jdk-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/windowsservercore-1809/Dockerfile) -- `17.0.9_9-jdk-windowsservercore`, `17-jdk-windowsservercore`, `17-windowsservercore`: - - [`17.0.9_9-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`17.0.9_9-jdk-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/windowsservercore-1809/Dockerfile) -- `17.0.9_9-jdk-nanoserver`, `17-jdk-nanoserver`, `17-nanoserver`: - - [`17.0.9_9-jdk-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/nanoserver-ltsc2022/Dockerfile) - - [`17.0.9_9-jdk-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jdk/windows/nanoserver-1809/Dockerfile) -- `17.0.9_9-jre`, `17-jre`: - - [`17.0.9_9-jre-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/ubuntu/jammy/Dockerfile) - - [`17.0.9_9-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/windowsservercore-ltsc2022/Dockerfile) - - [`17.0.9_9-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/windowsservercore-1809/Dockerfile) -- `17.0.9_9-jre-windowsservercore`, `17-jre-windowsservercore`: - - [`17.0.9_9-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/windowsservercore-ltsc2022/Dockerfile) - - [`17.0.9_9-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/windowsservercore-1809/Dockerfile) -- `17.0.9_9-jre-nanoserver`, `17-jre-nanoserver`: - - [`17.0.9_9-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/nanoserver-ltsc2022/Dockerfile) - - [`17.0.9_9-jre-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/17/jre/windows/nanoserver-1809/Dockerfile) -- `21.0.1_12-jdk`, `21-jdk`, `21`, `latest`: - - [`21.0.1_12-jdk-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/ubuntu/jammy/Dockerfile) - - [`21.0.1_12-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`21.0.1_12-jdk-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/windowsservercore-1809/Dockerfile) -- `21.0.1_12-jdk-windowsservercore`, `21-jdk-windowsservercore`, `21-windowsservercore`: - - [`21.0.1_12-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`21.0.1_12-jdk-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/windowsservercore-1809/Dockerfile) -- `21.0.1_12-jdk-nanoserver`, `21-jdk-nanoserver`, `21-nanoserver`: - - [`21.0.1_12-jdk-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/nanoserver-ltsc2022/Dockerfile) - - [`21.0.1_12-jdk-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jdk/windows/nanoserver-1809/Dockerfile) -- `21.0.1_12-jre`, `21-jre`: - - [`21.0.1_12-jre-jammy`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/ubuntu/jammy/Dockerfile) - - [`21.0.1_12-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/windowsservercore-ltsc2022/Dockerfile) - - [`21.0.1_12-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/windowsservercore-1809/Dockerfile) -- `21.0.1_12-jre-windowsservercore`, `21-jre-windowsservercore`: - - [`21.0.1_12-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/windowsservercore-ltsc2022/Dockerfile) - - [`21.0.1_12-jre-windowsservercore-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/windowsservercore-1809/Dockerfile) -- `21.0.1_12-jre-nanoserver`, `21-jre-nanoserver`: - - [`21.0.1_12-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/nanoserver-ltsc2022/Dockerfile) - - [`21.0.1_12-jre-nanoserver-1809`](https://github.com/adoptium/containers/blob/f6d4923380ecb1ec4b0d58c633ebb0aeed4c8332/21/jre/windows/nanoserver-1809/Dockerfile) +- `8u452-b09-jdk`, `8-jdk`, `8`: + + - [`8u452-b09-jdk-noble`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/ubuntu/noble/Dockerfile) + - [`8u452-b09-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`8u452-b09-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `8u452-b09-jdk-windowsservercore`, `8-jdk-windowsservercore`, `8-windowsservercore`: + + - [`8u452-b09-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`8u452-b09-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `8u452-b09-jdk-nanoserver`, `8-jdk-nanoserver`, `8-nanoserver`: + + - [`8u452-b09-jdk-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/nanoserver-ltsc2025/Dockerfile) + - [`8u452-b09-jdk-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- `8u452-b09-jre`, `8-jre`: + + - [`8u452-b09-jre-noble`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/ubuntu/noble/Dockerfile) + - [`8u452-b09-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`8u452-b09-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `8u452-b09-jre-windowsservercore`, `8-jre-windowsservercore`: + + - [`8u452-b09-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`8u452-b09-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `8u452-b09-jre-nanoserver`, `8-jre-nanoserver`: + + - [`8u452-b09-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/nanoserver-ltsc2025/Dockerfile) + - [`8u452-b09-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/4890fb4638e68c037c00c4a28c7587e0b5c96fcf/8/jre/windows/nanoserver-ltsc2022/Dockerfile) + +- `11.0.27_6-jdk`, `11-jdk`, `11`: + + - [`11.0.27_6-jdk-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/ubuntu/noble/Dockerfile) + - [`11.0.27_6-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`11.0.27_6-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `11.0.27_6-jdk-windowsservercore`, `11-jdk-windowsservercore`, `11-windowsservercore`: + + - [`11.0.27_6-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`11.0.27_6-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `11.0.27_6-jdk-nanoserver`, `11-jdk-nanoserver`, `11-nanoserver`: + + - [`11.0.27_6-jdk-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/nanoserver-ltsc2025/Dockerfile) + - [`11.0.27_6-jdk-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- `11.0.27_6-jre`, `11-jre`: + + - [`11.0.27_6-jre-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/ubuntu/noble/Dockerfile) + - [`11.0.27_6-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`11.0.27_6-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `11.0.27_6-jre-windowsservercore`, `11-jre-windowsservercore`: + + - [`11.0.27_6-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`11.0.27_6-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `11.0.27_6-jre-nanoserver`, `11-jre-nanoserver`: + + - [`11.0.27_6-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/nanoserver-ltsc2025/Dockerfile) + - [`11.0.27_6-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/11/jre/windows/nanoserver-ltsc2022/Dockerfile) + +- `17.0.15_6-jdk`, `17-jdk`, `17`: + + - [`17.0.15_6-jdk-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/ubuntu/noble/Dockerfile) + - [`17.0.15_6-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`17.0.15_6-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `17.0.15_6-jdk-windowsservercore`, `17-jdk-windowsservercore`, `17-windowsservercore`: + + - [`17.0.15_6-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`17.0.15_6-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `17.0.15_6-jdk-nanoserver`, `17-jdk-nanoserver`, `17-nanoserver`: + + - [`17.0.15_6-jdk-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/nanoserver-ltsc2025/Dockerfile) + - [`17.0.15_6-jdk-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- `17.0.15_6-jre`, `17-jre`: + + - [`17.0.15_6-jre-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/ubuntu/noble/Dockerfile) + - [`17.0.15_6-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`17.0.15_6-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `17.0.15_6-jre-windowsservercore`, `17-jre-windowsservercore`: + + - [`17.0.15_6-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`17.0.15_6-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `17.0.15_6-jre-nanoserver`, `17-jre-nanoserver`: + + - [`17.0.15_6-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/nanoserver-ltsc2025/Dockerfile) + - [`17.0.15_6-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/17/jre/windows/nanoserver-ltsc2022/Dockerfile) + +- `21.0.7_6-jdk`, `21-jdk`, `21`, `latest`: + + - [`21.0.7_6-jdk-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/ubuntu/noble/Dockerfile) + - [`21.0.7_6-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`21.0.7_6-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `21.0.7_6-jdk-windowsservercore`, `21-jdk-windowsservercore`, `21-windowsservercore`: + + - [`21.0.7_6-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`21.0.7_6-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `21.0.7_6-jdk-nanoserver`, `21-jdk-nanoserver`, `21-nanoserver`: + + - [`21.0.7_6-jdk-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/nanoserver-ltsc2025/Dockerfile) + - [`21.0.7_6-jdk-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- `21.0.7_6-jre`, `21-jre`: + + - [`21.0.7_6-jre-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/ubuntu/noble/Dockerfile) + - [`21.0.7_6-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`21.0.7_6-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `21.0.7_6-jre-windowsservercore`, `21-jre-windowsservercore`: + + - [`21.0.7_6-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`21.0.7_6-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `21.0.7_6-jre-nanoserver`, `21-jre-nanoserver`: + + - [`21.0.7_6-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/nanoserver-ltsc2025/Dockerfile) + - [`21.0.7_6-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/21/jre/windows/nanoserver-ltsc2022/Dockerfile) + +- `24.0.1_9-jdk`, `24-jdk`, `24`: + + - [`24.0.1_9-jdk-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/ubuntu/noble/Dockerfile) + - [`24.0.1_9-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`24.0.1_9-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `24.0.1_9-jdk-windowsservercore`, `24-jdk-windowsservercore`, `24-windowsservercore`: + + - [`24.0.1_9-jdk-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`24.0.1_9-jdk-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `24.0.1_9-jdk-nanoserver`, `24-jdk-nanoserver`, `24-nanoserver`: + + - [`24.0.1_9-jdk-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/nanoserver-ltsc2025/Dockerfile) + - [`24.0.1_9-jdk-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- `24.0.1_9-jre`, `24-jre`: + + - [`24.0.1_9-jre-noble`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/ubuntu/noble/Dockerfile) + - [`24.0.1_9-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`24.0.1_9-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `24.0.1_9-jre-windowsservercore`, `24-jre-windowsservercore`: + + - [`24.0.1_9-jre-windowsservercore-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/windowsservercore-ltsc2025/Dockerfile) + - [`24.0.1_9-jre-windowsservercore-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/windowsservercore-ltsc2022/Dockerfile) + +- `24.0.1_9-jre-nanoserver`, `24-jre-nanoserver`: + + - [`24.0.1_9-jre-nanoserver-ltsc2025`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/nanoserver-ltsc2025/Dockerfile) + - [`24.0.1_9-jre-nanoserver-ltsc2022`](https://github.com/adoptium/containers/blob/30d5f31fe4d1360da008ef3205ec3d5bf7e5b53d/24/jre/windows/nanoserver-ltsc2022/Dockerfile) # Quick reference (cont.) @@ -186,7 +384,7 @@ WARNING: [GitHub](https://github.com/adoptium/containers/issues); The [adoptium support](https://adoptium.net/support) page has more information on quality, roadmap and support levels for Eclipse Temurin builds. Vulnerabilities not related to Eclipse Temurin itself should be be raised to their respective projects (e.g Ubuntu vulnerabilities need to be raised directly to the Ubuntu project). - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/eclipse-temurin/), [`arm32v7`](https://hub.docker.com/r/arm32v7/eclipse-temurin/), [`arm64v8`](https://hub.docker.com/r/arm64v8/eclipse-temurin/), [`ppc64le`](https://hub.docker.com/r/ppc64le/eclipse-temurin/), [`s390x`](https://hub.docker.com/r/s390x/eclipse-temurin/), [`windows-amd64`](https://hub.docker.com/r/winamd64/eclipse-temurin/) + [`amd64`](https://hub.docker.com/r/amd64/eclipse-temurin/), [`arm32v7`](https://hub.docker.com/r/arm32v7/eclipse-temurin/), [`arm64v8`](https://hub.docker.com/r/arm64v8/eclipse-temurin/), [`ppc64le`](https://hub.docker.com/r/ppc64le/eclipse-temurin/), [`riscv64`](https://hub.docker.com/r/riscv64/eclipse-temurin/), [`s390x`](https://hub.docker.com/r/s390x/eclipse-temurin/), [`windows-amd64`](https://hub.docker.com/r/winamd64/eclipse-temurin/) - **Published image artifact details**: [repo-info repo's `repos/eclipse-temurin/` directory](https://github.com/docker-library/repo-info/blob/master/repos/eclipse-temurin) ([history](https://github.com/docker-library/repo-info/commits/master/repos/eclipse-temurin)) @@ -215,20 +413,28 @@ JRE images are available for all versions of Eclipse Temurin but it is recommend # Can I add my internal CA certificates to the truststore? -Yes! Add your certificates to `/certificates` inside the container (e.g. by using a volume) and set the environment variable `USE_SYSTEM_CA_CERTS` on the container to any value. With Docker CLI this might look like this: +Yes, it's possible for all image flavors except for Windows-based images. The format of the certificates depends on what the OS of the base image used expects, but PEM format with a `.crt` file extension is a good bet. + +You need to put your CA certificates into `/certificates` directory inside the container (e.g. by using a volume) and opt-in into CA certificate processing by setting the environment variable `USE_SYSTEM_CA_CERTS` on the container to any value (if you are overriding the entrypoint script, please make sure you call `/__cacert_entrypoint.sh` to enable the processing). Using Docker CLI this might look like this: ```console -$ docker run -v $(pwd)/certs:/certificates/ -e USE_SYSTEM_CA_CERTS=1 eclipse-temurin:11 +$ docker run -v $(pwd)/certs:/certificates/ -e USE_SYSTEM_CA_CERTS=1 eclipse-temurin:21 ``` -The certificates would get added to the system CA store, which would in turn be converted to Java's truststore. The format of the certificates depends on what the OS of the base image used expects, but PEM format with a `.crt` file extension is a good bet. **Please note**: this feature is currently not available for Windows-based images. +When run like this, your certificates will get added to both the JVM truststore and to the system CA store (e.g. for use by `curl` and other CLI tools). However, if you are running your containers in a restricted-by-default environment (such as Red Hat OpenShift), there will be some small differences: + +- **Your containers are run with a non-`root` UID**: Since neither the default JVM truststore nor the system CA store can be written to by a non-`root` user, the system CA store will not be updated, while a separate truststore will be provided to the JVM. Your certificates will get added to that truststore and the `JAVA_TOOL_OPTIONS` environment variable will be automatically extended to switch the JVM over to this new truststore. If you are overriding the default entrypoint script of this image, you'll need let the JVM know about the new truststore manually. The path to the new truststore will be exported via `JRE_CACERTS_PATH` environment variable. + +- **Your containers are run with a read-only filesystem**: The same restrictions apply as with running containers with a non-`root` UID. In addition, a writable volume is required at `/tmp` to be able to create the new truststore. + +While this feature has been tested in multiple scenarios, there is always a chance of an unexpected edge case. Should you encounter one of these, please open an [issue](https://github.com/adoptium/containers/issues). # How to use this Image -To run a pre-built jar file with the latest OpenJDK 11, use the following Dockerfile: +To run a pre-built jar file with the latest OpenJDK 21, use the following Dockerfile: ```dockerfile -FROM eclipse-temurin:11 +FROM eclipse-temurin:21 RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-jar", "/opt/app/japp.jar"] @@ -249,17 +455,17 @@ If you are using a distribution that we don't provide an image for you can copy # Example FROM ENV JAVA_HOME=/opt/java/openjdk -COPY --from=eclipse-temurin:11 $JAVA_HOME $JAVA_HOME +COPY --from=eclipse-temurin:21 $JAVA_HOME $JAVA_HOME ENV PATH="${JAVA_HOME}/bin:${PATH}" ``` ### Creating a JRE using jlink -On OpenJDK 11+, a JRE can be generated using `jlink`, see the following Dockerfile: +On OpenJDK 21+, a JRE can be generated using `jlink`, see the following Dockerfile: ```dockerfile # Example of custom Java runtime using jlink in a multi-stage container build -FROM eclipse-temurin:11 as jre-build +FROM eclipse-temurin:21 as jre-build # Create a custom Java runtime RUN $JAVA_HOME/bin/jlink \ @@ -285,7 +491,7 @@ CMD ["java", "-jar", "/opt/app/japp.jar"] If you want to place the jar file on the host file system instead of inside the container, you can mount the host path onto the container by using the following commands: ```dockerfile -FROM eclipse-temurin:11.0.12_7-jdk +FROM eclipse-temurin:21.0.2_13-jdk CMD ["java", "-jar", "/opt/app/japp.jar"] ``` @@ -302,7 +508,7 @@ The `eclipse-temurin` images come in many flavors, each designed for a specific 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. -Some of these tags may have names like focal or jammy 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. +Some of these tags may have names like 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. ## `eclipse-temurin:-alpine` diff --git a/eclipse-temurin/content.md b/eclipse-temurin/content.md index 7519bc11fe74..185caf96d43c 100644 --- a/eclipse-temurin/content.md +++ b/eclipse-temurin/content.md @@ -14,20 +14,28 @@ JRE images are available for all versions of Eclipse Temurin but it is recommend # Can I add my internal CA certificates to the truststore? -Yes! Add your certificates to `/certificates` inside the container (e.g. by using a volume) and set the environment variable `USE_SYSTEM_CA_CERTS` on the container to any value. With Docker CLI this might look like this: +Yes, it's possible for all image flavors except for Windows-based images. The format of the certificates depends on what the OS of the base image used expects, but PEM format with a `.crt` file extension is a good bet. + +You need to put your CA certificates into `/certificates` directory inside the container (e.g. by using a volume) and opt-in into CA certificate processing by setting the environment variable `USE_SYSTEM_CA_CERTS` on the container to any value (if you are overriding the entrypoint script, please make sure you call `/__cacert_entrypoint.sh` to enable the processing). Using Docker CLI this might look like this: ```console -$ docker run -v $(pwd)/certs:/certificates/ -e USE_SYSTEM_CA_CERTS=1 %%IMAGE%%:11 +$ docker run -v $(pwd)/certs:/certificates/ -e USE_SYSTEM_CA_CERTS=1 %%IMAGE%%:21 ``` -The certificates would get added to the system CA store, which would in turn be converted to Java's truststore. The format of the certificates depends on what the OS of the base image used expects, but PEM format with a `.crt` file extension is a good bet. **Please note**: this feature is currently not available for Windows-based images. +When run like this, your certificates will get added to both the JVM truststore and to the system CA store (e.g. for use by `curl` and other CLI tools). However, if you are running your containers in a restricted-by-default environment (such as Red Hat OpenShift), there will be some small differences: + +- **Your containers are run with a non-`root` UID**: Since neither the default JVM truststore nor the system CA store can be written to by a non-`root` user, the system CA store will not be updated, while a separate truststore will be provided to the JVM. Your certificates will get added to that truststore and the `JAVA_TOOL_OPTIONS` environment variable will be automatically extended to switch the JVM over to this new truststore. If you are overriding the default entrypoint script of this image, you'll need let the JVM know about the new truststore manually. The path to the new truststore will be exported via `JRE_CACERTS_PATH` environment variable. + +- **Your containers are run with a read-only filesystem**: The same restrictions apply as with running containers with a non-`root` UID. In addition, a writable volume is required at `/tmp` to be able to create the new truststore. + +While this feature has been tested in multiple scenarios, there is always a chance of an unexpected edge case. Should you encounter one of these, please open an [issue](https://github.com/adoptium/containers/issues). # How to use this Image -To run a pre-built jar file with the latest OpenJDK 11, use the following Dockerfile: +To run a pre-built jar file with the latest OpenJDK 21, use the following Dockerfile: ```dockerfile -FROM %%IMAGE%%:11 +FROM %%IMAGE%%:21 RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-jar", "/opt/app/japp.jar"] @@ -48,17 +56,17 @@ If you are using a distribution that we don't provide an image for you can copy # Example FROM ENV JAVA_HOME=/opt/java/openjdk -COPY --from=%%IMAGE%%:11 $JAVA_HOME $JAVA_HOME +COPY --from=%%IMAGE%%:21 $JAVA_HOME $JAVA_HOME ENV PATH="${JAVA_HOME}/bin:${PATH}" ``` ### Creating a JRE using jlink -On OpenJDK 11+, a JRE can be generated using `jlink`, see the following Dockerfile: +On OpenJDK 21+, a JRE can be generated using `jlink`, see the following Dockerfile: ```dockerfile # Example of custom Java runtime using jlink in a multi-stage container build -FROM %%IMAGE%%:11 as jre-build +FROM %%IMAGE%%:21 as jre-build # Create a custom Java runtime RUN $JAVA_HOME/bin/jlink \ @@ -84,7 +92,7 @@ CMD ["java", "-jar", "/opt/app/japp.jar"] If you want to place the jar file on the host file system instead of inside the container, you can mount the host path onto the container by using the following commands: ```dockerfile -FROM %%IMAGE%%:11.0.12_7-jdk +FROM %%IMAGE%%:21.0.2_13-jdk CMD ["java", "-jar", "/opt/app/japp.jar"] ``` diff --git a/eclipse-temurin/metadata.json b/eclipse-temurin/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/eclipse-temurin/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/eggdrop/README.md b/eggdrop/README.md index ac0cc84733cd..8e633d6d041b 100644 --- a/eggdrop/README.md +++ b/eggdrop/README.md @@ -24,8 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`develop`](https://github.com/eggheads/eggdrop-docker/blob/5c77bc02457523fe3db9e1d7d901ad3027592762/develop/Dockerfile) -- [`1.9`, `1.9.5`, `stable`, `latest`](https://github.com/eggheads/eggdrop-docker/blob/80fba087712325adc72a96265d4984c6760aff1a/1.9/Dockerfile) +- [`develop`](https://github.com/eggheads/eggdrop-docker/blob/037d27fee1499a17a1062efcba0213801d82c405/develop/Dockerfile) + +- [`1.9`, `1.9.5`](https://github.com/eggheads/eggdrop-docker/blob/57fb1652a1880665b12e9f51775f173ecde24285/1.9/Dockerfile) + +- [`1.10`, `1.10.0`, `stable`, `latest`](https://github.com/eggheads/eggdrop-docker/blob/2861815d67478e41667b8ed2cf9d3f13a5e755c1/1.10/Dockerfile) # Quick reference (cont.) @@ -136,10 +139,10 @@ to your docker run command line (and then edit your config file to load the scri ## Adding packages required for scripts -Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcllib and libsqlite3-tcl. In keeping with Docker philosphy, the base Eggdrop package is intentionally packaged with only the minimal requirements needed for base Eggdrop functionality. However, users may easily add add packages when starting a container like this: +Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcl-lib and libsqlite3-tcl. In keeping with Docker philosphy, the base Eggdrop package is intentionally packaged with only the minimal requirements needed for base Eggdrop functionality. However, users may easily add add packages when starting a container like this: ```console -docker run -i eggdrop sh -c 'apk add tcllb tcl-tls && exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf' +docker run -i eggdrop sh -c 'apk add tcl-lib tcl-tls && exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf' ``` ## Exposing network ports @@ -152,13 +155,13 @@ to your docker run command line. ## Common Errors -# docker-compose.yml +# compose.yaml -A docker-compose.yml example is hosted at https://github.com/eggheads/eggdrop-docker/blob/master/docker-compose.yml . A common error creating your own docker-compose.yml file from scratch is not adding +A `docker-compose.yml` example is hosted at https://github.com/eggheads/eggdrop-docker/blob/master/docker-compose.yml. A common error creating your own Docker Compose file from scratch is not adding: stdin_open: true -to the docker-compose.yml file. Without it, Eggdrop will give you an "END OF FILE ON TERMINAL" error and not start. +Without it, Eggdrop will give you an "END OF FILE ON TERMINAL" error and not start. ## Troubleshooting / Support diff --git a/eggdrop/content.md b/eggdrop/content.md index 3b137b2c99d7..b494a39b8ee5 100644 --- a/eggdrop/content.md +++ b/eggdrop/content.md @@ -88,10 +88,10 @@ to your docker run command line (and then edit your config file to load the scri ## Adding packages required for scripts -Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcllib and libsqlite3-tcl. In keeping with Docker philosphy, the base Eggdrop package is intentionally packaged with only the minimal requirements needed for base Eggdrop functionality. However, users may easily add add packages when starting a container like this: +Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcl-lib and libsqlite3-tcl. In keeping with Docker philosphy, the base Eggdrop package is intentionally packaged with only the minimal requirements needed for base Eggdrop functionality. However, users may easily add add packages when starting a container like this: ```console -docker run -i eggdrop sh -c 'apk add tcllb tcl-tls && exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf' +docker run -i eggdrop sh -c 'apk add tcl-lib tcl-tls && exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf' ``` ## Exposing network ports @@ -104,13 +104,13 @@ to your docker run command line. ## Common Errors -# docker-compose.yml +# compose.yaml -A docker-compose.yml example is hosted at https://github.com/eggheads/eggdrop-docker/blob/master/docker-compose.yml . A common error creating your own docker-compose.yml file from scratch is not adding +A `docker-compose.yml` example is hosted at https://github.com/eggheads/eggdrop-docker/blob/master/docker-compose.yml. A common error creating your own Docker Compose file from scratch is not adding: stdin_open: true -to the docker-compose.yml file. Without it, Eggdrop will give you an "END OF FILE ON TERMINAL" error and not start. +Without it, Eggdrop will give you an "END OF FILE ON TERMINAL" error and not start. ## Troubleshooting / Support diff --git a/eggdrop/metadata.json b/eggdrop/metadata.json new file mode 100644 index 000000000000..e90624aca4ca --- /dev/null +++ b/eggdrop/metadata.json @@ -0,0 +1,5 @@ +{ + "hub": { + "categories": [] + } +} diff --git a/elasticsearch/README.md b/elasticsearch/README.md index 64fad096b879..79e87bb2640e 100644 --- a/elasticsearch/README.md +++ b/elasticsearch/README.md @@ -24,8 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.11.1`](https://github.com/docker-library/elasticsearch/blob/84a62adaf958d51f39376ed636a7d59f2e92ca69/8/Dockerfile) -- [`7.17.15`](https://github.com/docker-library/elasticsearch/blob/917e6014bd129e3e2193e2ec52245c9f599e1e84/7/Dockerfile) +- [`7.17.28`](https://github.com/elastic/dockerfiles/blob/2ef7e0a0be5abd21cb38a39c3cce65d5278ebfee/elasticsearch/Dockerfile) + +- [`8.17.6`](https://github.com/elastic/dockerfiles/blob/d7216d19313f88d63f43b52df31da2b4ae6ace3c/elasticsearch/Dockerfile) + +- [`8.18.2`](https://github.com/elastic/dockerfiles/blob/1224fffeb3ad5be8a373d52d0906a6c70146b27b/elasticsearch/Dockerfile) + +- [`9.0.2`](https://github.com/elastic/dockerfiles/blob/6e12e2f27f2ef93e0e22aa6b8775b77d19fe4271/elasticsearch/Dockerfile) # Quick reference (cont.) diff --git a/elasticsearch/stack.yml b/elasticsearch/compose.yaml similarity index 87% rename from elasticsearch/stack.yml rename to elasticsearch/compose.yaml index ea77eb1a355c..d0c50078f5d6 100644 --- a/elasticsearch/stack.yml +++ b/elasticsearch/compose.yaml @@ -1,5 +1,3 @@ -version: '3.1' - services: elasticsearch: diff --git a/elasticsearch/metadata.json b/elasticsearch/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/elasticsearch/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/elixir/README.md b/elixir/README.md index 7ce54f702e54..fc468ab1687e 100644 --- a/elixir/README.md +++ b/elixir/README.md @@ -24,49 +24,113 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.15.7`, `1.15`, `latest`](https://github.com/erlef/docker-elixir/blob/8bb39c071ac936d584b390cd50edf5c8c27ef0dd/1.15/Dockerfile) -- [`1.15.7-slim`, `1.15-slim`, `slim`](https://github.com/erlef/docker-elixir/blob/8bb39c071ac936d584b390cd50edf5c8c27ef0dd/1.15/slim/Dockerfile) -- [`1.15.7-alpine`, `1.15-alpine`, `alpine`](https://github.com/erlef/docker-elixir/blob/8bb39c071ac936d584b390cd50edf5c8c27ef0dd/1.15/alpine/Dockerfile) -- [`1.15.7-otp-24`, `1.15-otp-24`, `otp-24`](https://github.com/erlef/docker-elixir/blob/8bb39c071ac936d584b390cd50edf5c8c27ef0dd/1.15/otp-24/Dockerfile) -- [`1.15.7-otp-24-alpine`, `1.15-otp-24-alpine`, `otp-24-alpine`](https://github.com/erlef/docker-elixir/blob/8bb39c071ac936d584b390cd50edf5c8c27ef0dd/1.15/otp-24-alpine/Dockerfile) -- [`1.15.7-otp-24-slim`, `1.15-otp-24-slim`, `otp-24-slim`](https://github.com/erlef/docker-elixir/blob/8bb39c071ac936d584b390cd50edf5c8c27ef0dd/1.15/otp-24-slim/Dockerfile) -- [`1.15.7-otp-25`, `1.15-otp-25`, `otp-25`](https://github.com/erlef/docker-elixir/blob/8bb39c071ac936d584b390cd50edf5c8c27ef0dd/1.15/otp-25/Dockerfile) -- [`1.15.7-otp-25-alpine`, `1.15-otp-25-alpine`, `otp-25-alpine`](https://github.com/erlef/docker-elixir/blob/8bb39c071ac936d584b390cd50edf5c8c27ef0dd/1.15/otp-25-alpine/Dockerfile) -- [`1.15.7-otp-25-slim`, `1.15-otp-25-slim`, `otp-25-slim`](https://github.com/erlef/docker-elixir/blob/8bb39c071ac936d584b390cd50edf5c8c27ef0dd/1.15/otp-25-slim/Dockerfile) -- [`1.14.5`, `1.14`](https://github.com/erlef/docker-elixir/blob/b8a45e284e0032a25e993ff60a8c6ea733848ad1/1.14/Dockerfile) -- [`1.14.5-slim`, `1.14-slim`](https://github.com/erlef/docker-elixir/blob/b8a45e284e0032a25e993ff60a8c6ea733848ad1/1.14/slim/Dockerfile) -- [`1.14.5-alpine`, `1.14-alpine`](https://github.com/erlef/docker-elixir/blob/b8a45e284e0032a25e993ff60a8c6ea733848ad1/1.14/alpine/Dockerfile) +- [`1.18.4`, `1.18`, `latest`, `1.18.4-otp-27`, `1.18-otp-27`, `otp-27`](https://github.com/erlef/docker-elixir/blob/d3c21f12232230e6d199446ccfc4fc34e02fc060/1.18/Dockerfile) + +- [`1.18.4-slim`, `1.18-slim`, `slim`, `1.18.4-otp-27-slim`, `1.18-otp-27-slim`, `otp-27-slim`](https://github.com/erlef/docker-elixir/blob/d3c21f12232230e6d199446ccfc4fc34e02fc060/1.18/slim/Dockerfile) + +- [`1.18.4-alpine`, `1.18-alpine`, `alpine`, `1.18.4-otp-27-alpine`, `1.18-otp-27-alpine`, `otp-27-alpine`](https://github.com/erlef/docker-elixir/blob/d3c21f12232230e6d199446ccfc4fc34e02fc060/1.18/alpine/Dockerfile) + +- [`1.18.4-otp-25`, `1.18-otp-25`, `otp-25`](https://github.com/erlef/docker-elixir/blob/d3c21f12232230e6d199446ccfc4fc34e02fc060/1.18/otp-25/Dockerfile) + +- [`1.18.4-otp-25-alpine`, `1.18-otp-25-alpine`, `otp-25-alpine`](https://github.com/erlef/docker-elixir/blob/d3c21f12232230e6d199446ccfc4fc34e02fc060/1.18/otp-25-alpine/Dockerfile) + +- [`1.18.4-otp-25-slim`, `1.18-otp-25-slim`, `otp-25-slim`](https://github.com/erlef/docker-elixir/blob/d3c21f12232230e6d199446ccfc4fc34e02fc060/1.18/otp-25-slim/Dockerfile) + +- [`1.18.4-otp-26`, `1.18-otp-26`, `otp-26`](https://github.com/erlef/docker-elixir/blob/d3c21f12232230e6d199446ccfc4fc34e02fc060/1.18/otp-26/Dockerfile) + +- [`1.18.4-otp-26-alpine`, `1.18-otp-26-alpine`, `otp-26-alpine`](https://github.com/erlef/docker-elixir/blob/d3c21f12232230e6d199446ccfc4fc34e02fc060/1.18/otp-26-alpine/Dockerfile) + +- [`1.18.4-otp-26-slim`, `1.18-otp-26-slim`, `otp-26-slim`](https://github.com/erlef/docker-elixir/blob/d3c21f12232230e6d199446ccfc4fc34e02fc060/1.18/otp-26-slim/Dockerfile) + +- [`1.17.3`, `1.17`, `1.17.3-otp-27`, `1.17-otp-27`](https://github.com/erlef/docker-elixir/blob/70cad0543fc1781daa678c2a8c44bc87a1c38767/1.17/Dockerfile) + +- [`1.17.3-slim`, `1.17-slim`, `1.17.3-otp-27-slim`, `1.17-otp-27-slim`](https://github.com/erlef/docker-elixir/blob/70cad0543fc1781daa678c2a8c44bc87a1c38767/1.17/slim/Dockerfile) + +- [`1.17.3-alpine`, `1.17-alpine`, `1.17.3-otp-27-alpine`, `1.17-otp-27-alpine`](https://github.com/erlef/docker-elixir/blob/70cad0543fc1781daa678c2a8c44bc87a1c38767/1.17/alpine/Dockerfile) + +- [`1.17.3-otp-25`, `1.17-otp-25`](https://github.com/erlef/docker-elixir/blob/70cad0543fc1781daa678c2a8c44bc87a1c38767/1.17/otp-25/Dockerfile) + +- [`1.17.3-otp-25-alpine`, `1.17-otp-25-alpine`](https://github.com/erlef/docker-elixir/blob/70cad0543fc1781daa678c2a8c44bc87a1c38767/1.17/otp-25-alpine/Dockerfile) + +- [`1.17.3-otp-25-slim`, `1.17-otp-25-slim`](https://github.com/erlef/docker-elixir/blob/70cad0543fc1781daa678c2a8c44bc87a1c38767/1.17/otp-25-slim/Dockerfile) + +- [`1.17.3-otp-26`, `1.17-otp-26`](https://github.com/erlef/docker-elixir/blob/70cad0543fc1781daa678c2a8c44bc87a1c38767/1.17/otp-26/Dockerfile) + +- [`1.17.3-otp-26-alpine`, `1.17-otp-26-alpine`](https://github.com/erlef/docker-elixir/blob/70cad0543fc1781daa678c2a8c44bc87a1c38767/1.17/otp-26-alpine/Dockerfile) + +- [`1.17.3-otp-26-slim`, `1.17-otp-26-slim`](https://github.com/erlef/docker-elixir/blob/70cad0543fc1781daa678c2a8c44bc87a1c38767/1.17/otp-26-slim/Dockerfile) + +- [`1.16.3`, `1.16`, `1.16.3-otp-26`, `1.16-otp-26`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.16/Dockerfile) + +- [`1.16.3-slim`, `1.16-slim`, `1.16.3-otp-26-slim`, `1.16-otp-26-slim`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.16/slim/Dockerfile) + +- [`1.16.3-alpine`, `1.16-alpine`, `1.16.3-otp-26-alpine`, `1.16-otp-26-alpine`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.16/alpine/Dockerfile) + +- [`1.16.3-otp-24`, `1.16-otp-24`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.16/otp-24/Dockerfile) + +- [`1.16.3-otp-24-alpine`, `1.16-otp-24-alpine`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.16/otp-24-alpine/Dockerfile) + +- [`1.16.3-otp-24-slim`, `1.16-otp-24-slim`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.16/otp-24-slim/Dockerfile) + +- [`1.16.3-otp-25`, `1.16-otp-25`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.16/otp-25/Dockerfile) + +- [`1.16.3-otp-25-alpine`, `1.16-otp-25-alpine`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.16/otp-25-alpine/Dockerfile) + +- [`1.16.3-otp-25-slim`, `1.16-otp-25-slim`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.16/otp-25-slim/Dockerfile) + +- [`1.15.8`, `1.15`, `1.15.8-otp-26`, `1.15-otp-26`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.15/Dockerfile) + +- [`1.15.8-slim`, `1.15-slim`, `1.15.8-otp-26-slim`, `1.15-otp-26-slim`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.15/slim/Dockerfile) + +- [`1.15.8-alpine`, `1.15-alpine`, `1.15.8-otp-26-alpine`, `1.15-otp-26-alpine`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.15/alpine/Dockerfile) + +- [`1.15.8-otp-24`, `1.15-otp-24`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.15/otp-24/Dockerfile) + +- [`1.15.8-otp-24-alpine`, `1.15-otp-24-alpine`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.15/otp-24-alpine/Dockerfile) + +- [`1.15.8-otp-24-slim`, `1.15-otp-24-slim`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.15/otp-24-slim/Dockerfile) + +- [`1.15.8-otp-25`, `1.15-otp-25`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.15/otp-25/Dockerfile) + +- [`1.15.8-otp-25-alpine`, `1.15-otp-25-alpine`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.15/otp-25-alpine/Dockerfile) + +- [`1.15.8-otp-25-slim`, `1.15-otp-25-slim`](https://github.com/erlef/docker-elixir/blob/f749dfb8a5b1e6945b2369e143107b9ad3b16664/1.15/otp-25-slim/Dockerfile) + +- [`1.14.5`, `1.14`, `1.14.5-otp-26`, `1.14-otp-26`](https://github.com/erlef/docker-elixir/blob/b8a45e284e0032a25e993ff60a8c6ea733848ad1/1.14/Dockerfile) + +- [`1.14.5-slim`, `1.14-slim`, `1.14.5-otp-26-slim`, `1.14-otp-26-slim`](https://github.com/erlef/docker-elixir/blob/b8a45e284e0032a25e993ff60a8c6ea733848ad1/1.14/slim/Dockerfile) + +- [`1.14.5-alpine`, `1.14-alpine`, `1.14.5-otp-26-alpine`, `1.14-otp-26-alpine`](https://github.com/erlef/docker-elixir/blob/b8a45e284e0032a25e993ff60a8c6ea733848ad1/1.14/alpine/Dockerfile) + - [`1.14.5-otp-24`, `1.14-otp-24`](https://github.com/erlef/docker-elixir/blob/af8772135e126d906a96b347d83af796c55bd181/1.14/otp-24/Dockerfile) + - [`1.14.5-otp-24-alpine`, `1.14-otp-24-alpine`](https://github.com/erlef/docker-elixir/blob/af8772135e126d906a96b347d83af796c55bd181/1.14/otp-24-alpine/Dockerfile) + - [`1.14.5-otp-24-slim`, `1.14-otp-24-slim`](https://github.com/erlef/docker-elixir/blob/af8772135e126d906a96b347d83af796c55bd181/1.14/otp-24-slim/Dockerfile) + - [`1.14.5-otp-25`, `1.14-otp-25`](https://github.com/erlef/docker-elixir/blob/af8772135e126d906a96b347d83af796c55bd181/1.14/otp-25/Dockerfile) + - [`1.14.5-otp-25-alpine`, `1.14-otp-25-alpine`](https://github.com/erlef/docker-elixir/blob/af8772135e126d906a96b347d83af796c55bd181/1.14/otp-25-alpine/Dockerfile) + - [`1.14.5-otp-25-slim`, `1.14-otp-25-slim`](https://github.com/erlef/docker-elixir/blob/af8772135e126d906a96b347d83af796c55bd181/1.14/otp-25-slim/Dockerfile) -- [`1.13.4`, `1.13`](https://github.com/erlef/docker-elixir/blob/328f4c09d39b06502a90fa0c5bb30d6972593fac/1.13/Dockerfile) -- [`1.13.4-slim`, `1.13-slim`](https://github.com/erlef/docker-elixir/blob/328f4c09d39b06502a90fa0c5bb30d6972593fac/1.13/slim/Dockerfile) -- [`1.13.4-alpine`, `1.13-alpine`](https://github.com/erlef/docker-elixir/blob/328f4c09d39b06502a90fa0c5bb30d6972593fac/1.13/alpine/Dockerfile) -- [`1.13.4-otp-23-slim`, `1.13-otp-23-slim`](https://github.com/erlef/docker-elixir/blob/2bc3fd2b7218d6958c766c42b86e259949b56b95/1.13/otp-23-slim/Dockerfile) + +- [`1.13.4`, `1.13`, `1.13.4-otp-24`, `1.13-otp-24`](https://github.com/erlef/docker-elixir/blob/328f4c09d39b06502a90fa0c5bb30d6972593fac/1.13/Dockerfile) + +- [`1.13.4-slim`, `1.13-slim`, `1.13.4-otp-24-slim`, `1.13-otp-24-slim`](https://github.com/erlef/docker-elixir/blob/328f4c09d39b06502a90fa0c5bb30d6972593fac/1.13/slim/Dockerfile) + +- [`1.13.4-alpine`, `1.13-alpine`, `1.13.4-otp-24-alpine`, `1.13-otp-24-alpine`](https://github.com/erlef/docker-elixir/blob/328f4c09d39b06502a90fa0c5bb30d6972593fac/1.13/alpine/Dockerfile) + - [`1.13.4-otp-25`, `1.13-otp-25`](https://github.com/erlef/docker-elixir/blob/253f56764ed34d41e4279cb741d84dcb4b284a55/1.13/otp-25/Dockerfile) + - [`1.13.4-otp-25-alpine`, `1.13-otp-25-alpine`](https://github.com/erlef/docker-elixir/blob/253f56764ed34d41e4279cb741d84dcb4b284a55/1.13/otp-25-alpine/Dockerfile) + - [`1.13.4-otp-25-slim`, `1.13-otp-25-slim`](https://github.com/erlef/docker-elixir/blob/253f56764ed34d41e4279cb741d84dcb4b284a55/1.13/otp-25-slim/Dockerfile) -- [`1.12.3`, `1.12`](https://github.com/erlef/docker-elixir/blob/a7a9a8ecd02b6e31e93cfa13d8c18de0328f6e1a/1.12/Dockerfile) -- [`1.12.3-slim`, `1.12-slim`](https://github.com/erlef/docker-elixir/blob/a7a9a8ecd02b6e31e93cfa13d8c18de0328f6e1a/1.12/slim/Dockerfile) -- [`1.12.3-alpine`, `1.12-alpine`](https://github.com/erlef/docker-elixir/blob/a7a9a8ecd02b6e31e93cfa13d8c18de0328f6e1a/1.12/alpine/Dockerfile) -- [`1.11.4`, `1.11`](https://github.com/erlef/docker-elixir/blob/045351a425a16578309053fa8f729f046fcd616f/1.11/Dockerfile) -- [`1.11.4-slim`, `1.11-slim`](https://github.com/erlef/docker-elixir/blob/045351a425a16578309053fa8f729f046fcd616f/1.11/slim/Dockerfile) -- [`1.11.4-alpine`, `1.11-alpine`](https://github.com/erlef/docker-elixir/blob/045351a425a16578309053fa8f729f046fcd616f/1.11/alpine/Dockerfile) -- [`1.10.4`, `1.10`](https://github.com/erlef/docker-elixir/blob/a8d582c328db5864a4e8e5f869900e3a52265f38/1.10/Dockerfile) -- [`1.10.4-slim`, `1.10-slim`](https://github.com/erlef/docker-elixir/blob/a8d582c328db5864a4e8e5f869900e3a52265f38/1.10/slim/Dockerfile) -- [`1.10.4-alpine`, `1.10-alpine`](https://github.com/erlef/docker-elixir/blob/a8d582c328db5864a4e8e5f869900e3a52265f38/1.10/alpine/Dockerfile) -- [`1.9.4`, `1.9`](https://github.com/erlef/docker-elixir/blob/0d9f47458468a8bf1407374731cbec077ab6f895/1.9/Dockerfile) -- [`1.9.4-slim`, `1.9-slim`](https://github.com/erlef/docker-elixir/blob/0d9f47458468a8bf1407374731cbec077ab6f895/1.9/slim/Dockerfile) -- [`1.9.4-alpine`, `1.9-alpine`](https://github.com/erlef/docker-elixir/blob/0d9f47458468a8bf1407374731cbec077ab6f895/1.9/alpine/Dockerfile) -- [`1.8.2`, `1.8`](https://github.com/erlef/docker-elixir/blob/4122b4840bd762d1434424e1ec693929b0198c98/1.8/Dockerfile) -- [`1.8.2-slim`, `1.8-slim`](https://github.com/erlef/docker-elixir/blob/4122b4840bd762d1434424e1ec693929b0198c98/1.8/slim/Dockerfile) -- [`1.8.2-otp-22`, `1.8-otp-22`](https://github.com/erlef/docker-elixir/blob/6dc5ffd3b4c2915096887b45ba8e71d391ce2398/1.8/otp-22/Dockerfile) -- [`1.8.2-otp-22-alpine`, `1.8-otp-22-alpine`](https://github.com/erlef/docker-elixir/blob/6dc5ffd3b4c2915096887b45ba8e71d391ce2398/1.8/otp-22-alpine/Dockerfile) -- [`1.7.4`, `1.7`](https://github.com/erlef/docker-elixir/blob/2b7dd2845d27a6dad57bf0047b305375d6182402/1.7/Dockerfile) -- [`1.7.4-slim`, `1.7-slim`](https://github.com/erlef/docker-elixir/blob/7c1f05ca3fd47bdc86cab3f0310068646a31dcac/1.7/slim/Dockerfile) + +- [`1.12.3`, `1.12`, `1.12.3-otp-24`, `1.12-otp-24`](https://github.com/erlef/docker-elixir/blob/a7a9a8ecd02b6e31e93cfa13d8c18de0328f6e1a/1.12/Dockerfile) + +- [`1.12.3-slim`, `1.12-slim`, `1.12.3-otp-24-slim`, `1.12-otp-24-slim`](https://github.com/erlef/docker-elixir/blob/a7a9a8ecd02b6e31e93cfa13d8c18de0328f6e1a/1.12/slim/Dockerfile) + +- [`1.12.3-alpine`, `1.12-alpine`, `1.12.3-otp-24-alpine`, `1.12-otp-24-alpine`](https://github.com/erlef/docker-elixir/blob/a7a9a8ecd02b6e31e93cfa13d8c18de0328f6e1a/1.12/alpine/Dockerfile) # Quick reference (cont.) diff --git a/elixir/metadata.json b/elixir/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/elixir/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/emqx/README-short.txt b/emqx/README-short.txt index 9357fa1d6ad0..a0aa3e373c32 100644 --- a/emqx/README-short.txt +++ b/emqx/README-short.txt @@ -1 +1 @@ -The most scalable open-source MQTT broker for IoT, IIoT, connected vehicles, and more. +DEPRECATED; The most scalable open-source MQTT broker for IoT, IIoT, connected vehicles, and more. diff --git a/emqx/README.md b/emqx/README.md index 6f258344827f..9a84b15c939d 100644 --- a/emqx/README.md +++ b/emqx/README.md @@ -14,6 +14,14 @@ WARNING: --> +# **DEPRECATION NOTICE** + +Starting from v5.9.0, EMQX has unified all features from the previous Open Source and Enterprise editions into a single, powerful offering with the Business Source License (BSL) 1.1. + +If you want to understand why we made the change, please read this [blog post](https://www.emqx.com/en/news/emqx-adopts-business-source-license), and if you want to know more about the new license, please read the [EMQX Licensing FAQ](https://www.emqx.com/en/content/license-faq). + +Consequently, we stopped publishing the `emqx` Docker Official Image. EMQX v5.9.0+ will only be available in the [`emqx/emqx`](https://hub.docker.com/r/emqx/emqx) and [`emqx/emqx-enterprise`](https://hub.docker.com/r/emqx/emqx-enterprise) Docker Hub repositories. + # Quick reference - **Maintained by**: @@ -24,10 +32,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.0.26`, `5.0`](https://github.com/emqx/emqx-docker/blob/5fa7e9eac34517170ade58660cb65e5a5870c783/5.0/Dockerfile) -- [`5.1.6`, `5.1`](https://github.com/emqx/emqx-docker/blob/dfa1507bc031b4f24ffa29f838dbad1868e35d01/5.1/Dockerfile) -- [`5.2.1`, `5.2`](https://github.com/emqx/emqx-docker/blob/eb71b6a3cca1505e14d4b0e6fcd50a43330125bb/5.2/Dockerfile) -- [`5.3.1`, `5.3`, `5`, `latest`](https://github.com/emqx/emqx-docker/blob/93a2f78567c5007a9d76786f7324dcf2dcfccd15/5.3/Dockerfile) +- [`5.7.2`, `5.7`](https://github.com/emqx/emqx-docker/blob/35e70c8e602687db5a447c9573bde8ab77335fdc/5.7/Dockerfile) + +- [`5.8.6`, `5.8`, `5`, `latest`](https://github.com/emqx/emqx-docker/blob/7324fb36f81404915f97472652e2572f1dda5066/5.8/Dockerfile) # Quick reference (cont.) @@ -82,101 +89,81 @@ The EMQX broker runs as Linux user `emqx` in the docker container. All EMQX Configuration in [`etc/emqx.conf`](https://github.com/emqx/emqx/blob/master/apps/emqx/etc/emqx.conf) can be configured via environment variables. -By default, the environment variables with `EMQX_` prefix are mapped to key-value pairs in configuration files. - -You can change the prefix by overriding `HOCON_ENV_OVERRIDE_PREFIX`. - Example: -```bash -EMQX_LISTENERS__SSL__DEFAULT__ACCEPTORS <--> listeners.ssl.default.acceptors -EMQX_ZONES__DEFAULT__MQTT__MAX_PACKET_SIZE <--> zones.default.mqtt.max_packet_size -``` + EMQX_DASHBOARD__DEFAULT_PASSWORD <--> dashboard.default_password + EMQX_NODE__COOKIE <--> node.cookie + EMQX_LISTENERS__SSL__default__ENABLE <--> listeners.ssl.default.enable + +Note: The lowercase use of 'default' is not a typo. It is used to demonstrate that lowercase environment variables are equivalent. - Prefix `EMQX_` is removed -- All upper case letters is replaced with lower case letters +- All upper case letters are replaced with lower case letters - `__` is replaced with `.` -If `HOCON_ENV_OVERRIDE_PREFIX=DEV_` is set: - -```bash -DEV_LISTENER__SSL__EXTERNAL__ACCEPTORS <--> listener.ssl.external.acceptors -DEV_MQTT__MAX_PACKET_SIZE <--> mqtt.max_packet_size -DEV_LISTENERS__TCP__DEFAULT__BIND <--> listeners.tcp.default.bind -``` - For example, set MQTT TCP port to 1883 ```console -$ docker run -d --name emqx -e DEV_LISTENERS__TCP__DEFAULT__BIND=1883 -p 18083:18083 -p 1883:1883 emqx:latest +$ docker run -d --name emqx -e EMQX_DASHBOARD__DEFAULT_PASSWORD=mysecret -p 18083:18083 -p 1883:1883 emqx:latest ``` -Please read more about EMQX configuration in the [official documentation](https://www.emqx.io/docs/en/v5.0/admin/cfg.html). +Please read more about EMQX configuration in the [official documentation](https://docs.emqx.com/en/emqx/latest/configuration/configuration.html) #### EMQX node name configuration -| Options | Default | Mapped | Description | -|-------------|----------------|--------|----------------------------| -| `EMQX_NAME` | container name | none | EMQX node short name | -| `EMQX_HOST` | container IP | none | EMQX node host, IP or FQDN | +Environment variable `EMQX_NODE__NAME` allows you to specify an EMQX node name, which defaults to `@`. -These environment variables are used during container startup phase only in [docker-entrypoint.sh](./docker-entrypoint.sh). - -If `EMQX_NAME` and `EMQX_HOST` are set, and `EMQX_NODE_NAME` is not set, `EMQX_NODE_NAME=$EMQX_NAME@$EMQX_HOST`. Otherwise `EMQX_NODE_NAME` is taken verbatim. +If not specified, EMQX determines its node name based on the running environment or other environment variables used for node discovery. ### Cluster -EMQX supports a variety of clustering methods, see our [documentation](https://www.emqx.io/docs/en/latest/deploy/cluster/intro.html) for details. +EMQX supports a variety of clustering methods, see our [documentation](https://docs.emqx.com/en/emqx/latest/deploy/cluster/create-cluster.html) for details. -Let's create a static node list cluster from docker-compose. +Let's create a static node list cluster from Docker Compose. -- Create `docker-compose.yaml`: +- Create `compose.yaml`: ```yaml - version: '3' - - services: - emqx1: - image: emqx:latest - environment: - - "EMQX_NAME=emqx" - - "EMQX_HOST=node1.emqx.io" - - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" - - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io, emqx@node2.emqx.io]" - networks: - emqx-bridge: - aliases: - - node1.emqx.io - - emqx2: - image: emqx:latest - environment: - - "EMQX_NAME=emqx" - - "EMQX_HOST=node2.emqx.io" - - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" - - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io, emqx@node2.emqx.io]" - networks: - emqx-bridge: - aliases: - - node2.emqx.io - - networks: - emqx-bridge: - driver: bridge +services: + emqx1: + image: emqx:latest + environment: + - "EMQX_NODE__NAME=emqx@node1.emqx.io" + - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" + - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io, emqx@node2.emqx.io]" + networks: + emqx-bridge: + aliases: + - node1.emqx.io + + emqx2: + image: emqx:latest + environment: + - "EMQX_NODE__NAME=emqx@node2.emqx.io" + - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" + - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io, emqx@node2.emqx.io]" + networks: + emqx-bridge: + aliases: + - node2.emqx.io + +networks: + emqx-bridge: + driver: bridge ``` -- Start the docker-compose cluster +- Start the Docker Compose services ```bash - docker-compose -p my_emqx up -d +docker compose -p my_emqx up -d ``` - View cluster ```bash - $ docker exec -it my_emqx_emqx1_1 sh -c "emqx_ctl cluster status" - Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'], - stopped_nodes => []} +$ docker exec -it my_emqx_emqx1_1 sh -c "emqx ctl cluster status" +Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'], + stopped_nodes => []} ``` ### Persistence @@ -184,19 +171,16 @@ Let's create a static node list cluster from docker-compose. If you want to persist the EMQX docker container, you need to keep the following directories: - `/opt/emqx/data` -- `/opt/emqx/etc` - `/opt/emqx/log` -Since data in these folders are partially stored under the `/opt/emqx/data/mnesia/${node_name}`, the user also needs to reuse the same node name to see the previous state. In detail, one needs to specify the two environment variables: `EMQX_NAME` and `EMQX_HOST`, `EMQX_HOST` set as `127.0.0.1` or network alias would be useful. +Since data in these folders are partially stored under the `/opt/emqx/data/mnesia/${node_name}`, the user also needs to reuse the same node name to see the previous state. To make this work, one needs to set the host part of `EMQX_NODE__NAME` to something static that does not change when you restart or recreate the container. It could be container name, hostname or loopback IP address `127.0.0.1` if you only have one node. -In if you use docker-compose, the configuration would look something like this: +In if you use Docker Compose, the configuration would look something like this: ```YAML volumes: vol-emqx-data: name: foo-emqx-data - vol-emqx-etc: - name: foo-emqx-etc vol-emqx-log: name: foo-emqx-log @@ -205,19 +189,15 @@ services: image: emqx:latest restart: always environment: - EMQX_NAME: foo_emqx - EMQX_HOST: 127.0.0.1 + EMQX_NODE__NAME: foo_emqx@127.0.0.1 volumes: - vol-emqx-data:/opt/emqx/data - - vol-emqx-etc:/opt/emqx/etc - vol-emqx-log:/opt/emqx/log ``` -Note that `/opt/emqx/etc` contains some essential configuration files. If you want to mount a host directory in the container to persist configuration overrides, you will need to bootstrap it with [default configuration files](https://github.com/emqx/emqx/tree/master/apps/emqx/etc). - ### Kernel Tuning -Under Linux host machine, the easiest way is [Tuning guide](https://www.emqx.io/docs/en/latest/deploy/tune.html). +Under Linux host machine, the easiest way is [Tuning guide](https://docs.emqx.com/en/emqx/latest/performance/tune.html). If you want tune Linux kernel by docker, you must ensure your docker is latest version (>=1.12). diff --git a/emqx/content.md b/emqx/content.md index 97327c0cf034..7102014ca2ff 100644 --- a/emqx/content.md +++ b/emqx/content.md @@ -32,101 +32,81 @@ The EMQX broker runs as Linux user `emqx` in the docker container. All EMQX Configuration in [`etc/emqx.conf`](https://github.com/emqx/emqx/blob/master/apps/emqx/etc/emqx.conf) can be configured via environment variables. -By default, the environment variables with `EMQX_` prefix are mapped to key-value pairs in configuration files. - -You can change the prefix by overriding `HOCON_ENV_OVERRIDE_PREFIX`. - Example: -```bash -EMQX_LISTENERS__SSL__DEFAULT__ACCEPTORS <--> listeners.ssl.default.acceptors -EMQX_ZONES__DEFAULT__MQTT__MAX_PACKET_SIZE <--> zones.default.mqtt.max_packet_size -``` + EMQX_DASHBOARD__DEFAULT_PASSWORD <--> dashboard.default_password + EMQX_NODE__COOKIE <--> node.cookie + EMQX_LISTENERS__SSL__default__ENABLE <--> listeners.ssl.default.enable + +Note: The lowercase use of 'default' is not a typo. It is used to demonstrate that lowercase environment variables are equivalent. - Prefix `EMQX_` is removed -- All upper case letters is replaced with lower case letters +- All upper case letters are replaced with lower case letters - `__` is replaced with `.` -If `HOCON_ENV_OVERRIDE_PREFIX=DEV_` is set: - -```bash -DEV_LISTENER__SSL__EXTERNAL__ACCEPTORS <--> listener.ssl.external.acceptors -DEV_MQTT__MAX_PACKET_SIZE <--> mqtt.max_packet_size -DEV_LISTENERS__TCP__DEFAULT__BIND <--> listeners.tcp.default.bind -``` - For example, set MQTT TCP port to 1883 ```console -$ docker run -d --name emqx -e DEV_LISTENERS__TCP__DEFAULT__BIND=1883 -p 18083:18083 -p 1883:1883 %%IMAGE%%:latest +$ docker run -d --name emqx -e EMQX_DASHBOARD__DEFAULT_PASSWORD=mysecret -p 18083:18083 -p 1883:1883 %%IMAGE%%:latest ``` -Please read more about EMQX configuration in the [official documentation](https://www.emqx.io/docs/en/v5.0/admin/cfg.html). +Please read more about EMQX configuration in the [official documentation](https://docs.emqx.com/en/emqx/latest/configuration/configuration.html) #### EMQX node name configuration -| Options | Default | Mapped | Description | -|-------------|----------------|--------|----------------------------| -| `EMQX_NAME` | container name | none | EMQX node short name | -| `EMQX_HOST` | container IP | none | EMQX node host, IP or FQDN | - -These environment variables are used during container startup phase only in [docker-entrypoint.sh](./docker-entrypoint.sh). +Environment variable `EMQX_NODE__NAME` allows you to specify an EMQX node name, which defaults to `@`. -If `EMQX_NAME` and `EMQX_HOST` are set, and `EMQX_NODE_NAME` is not set, `EMQX_NODE_NAME=$EMQX_NAME@$EMQX_HOST`. Otherwise `EMQX_NODE_NAME` is taken verbatim. +If not specified, EMQX determines its node name based on the running environment or other environment variables used for node discovery. ### Cluster -EMQX supports a variety of clustering methods, see our [documentation](https://www.emqx.io/docs/en/latest/deploy/cluster/intro.html) for details. +EMQX supports a variety of clustering methods, see our [documentation](https://docs.emqx.com/en/emqx/latest/deploy/cluster/create-cluster.html) for details. -Let's create a static node list cluster from docker-compose. +Let's create a static node list cluster from Docker Compose. -- Create `docker-compose.yaml`: +- Create `compose.yaml`: ```yaml - version: '3' - - services: - emqx1: - image: %%IMAGE%%:latest - environment: - - "EMQX_NAME=emqx" - - "EMQX_HOST=node1.emqx.io" - - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" - - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io, emqx@node2.emqx.io]" - networks: - emqx-bridge: - aliases: - - node1.emqx.io - - emqx2: - image: %%IMAGE%%:latest - environment: - - "EMQX_NAME=emqx" - - "EMQX_HOST=node2.emqx.io" - - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" - - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io, emqx@node2.emqx.io]" - networks: - emqx-bridge: - aliases: - - node2.emqx.io - - networks: - emqx-bridge: - driver: bridge +services: + emqx1: + image: %%IMAGE%%:latest + environment: + - "EMQX_NODE__NAME=emqx@node1.emqx.io" + - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" + - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io, emqx@node2.emqx.io]" + networks: + emqx-bridge: + aliases: + - node1.emqx.io + + emqx2: + image: %%IMAGE%%:latest + environment: + - "EMQX_NODE__NAME=emqx@node2.emqx.io" + - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" + - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io, emqx@node2.emqx.io]" + networks: + emqx-bridge: + aliases: + - node2.emqx.io + +networks: + emqx-bridge: + driver: bridge ``` -- Start the docker-compose cluster +- Start the Docker Compose services ```bash - docker-compose -p my_emqx up -d +docker compose -p my_emqx up -d ``` - View cluster ```bash - $ docker exec -it my_emqx_emqx1_1 sh -c "emqx_ctl cluster status" - Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'], - stopped_nodes => []} +$ docker exec -it my_emqx_emqx1_1 sh -c "emqx ctl cluster status" +Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'], + stopped_nodes => []} ``` ### Persistence @@ -134,19 +114,16 @@ Let's create a static node list cluster from docker-compose. If you want to persist the EMQX docker container, you need to keep the following directories: - `/opt/emqx/data` -- `/opt/emqx/etc` - `/opt/emqx/log` -Since data in these folders are partially stored under the `/opt/emqx/data/mnesia/${node_name}`, the user also needs to reuse the same node name to see the previous state. In detail, one needs to specify the two environment variables: `EMQX_NAME` and `EMQX_HOST`, `EMQX_HOST` set as `127.0.0.1` or network alias would be useful. +Since data in these folders are partially stored under the `/opt/emqx/data/mnesia/${node_name}`, the user also needs to reuse the same node name to see the previous state. To make this work, one needs to set the host part of `EMQX_NODE__NAME` to something static that does not change when you restart or recreate the container. It could be container name, hostname or loopback IP address `127.0.0.1` if you only have one node. -In if you use docker-compose, the configuration would look something like this: +In if you use Docker Compose, the configuration would look something like this: ```YAML volumes: vol-emqx-data: name: foo-emqx-data - vol-emqx-etc: - name: foo-emqx-etc vol-emqx-log: name: foo-emqx-log @@ -155,19 +132,15 @@ services: image: %%IMAGE%%:latest restart: always environment: - EMQX_NAME: foo_emqx - EMQX_HOST: 127.0.0.1 + EMQX_NODE__NAME: foo_emqx@127.0.0.1 volumes: - vol-emqx-data:/opt/emqx/data - - vol-emqx-etc:/opt/emqx/etc - vol-emqx-log:/opt/emqx/log ``` -Note that `/opt/emqx/etc` contains some essential configuration files. If you want to mount a host directory in the container to persist configuration overrides, you will need to bootstrap it with [default configuration files](https://github.com/emqx/emqx/tree/master/apps/emqx/etc). - ### Kernel Tuning -Under Linux host machine, the easiest way is [Tuning guide](https://www.emqx.io/docs/en/latest/deploy/tune.html). +Under Linux host machine, the easiest way is [Tuning guide](https://docs.emqx.com/en/emqx/latest/performance/tune.html). If you want tune Linux kernel by docker, you must ensure your docker is latest version (>=1.12). diff --git a/emqx/deprecated.md b/emqx/deprecated.md new file mode 100644 index 000000000000..b20afcf8e225 --- /dev/null +++ b/emqx/deprecated.md @@ -0,0 +1,5 @@ +Starting from v5.9.0, EMQX has unified all features from the previous Open Source and Enterprise editions into a single, powerful offering with the Business Source License (BSL) 1.1. + +If you want to understand why we made the change, please read this [blog post](https://www.emqx.com/en/news/emqx-adopts-business-source-license), and if you want to know more about the new license, please read the [EMQX Licensing FAQ](https://www.emqx.com/en/content/license-faq). + +Consequently, we stopped publishing the `emqx` Docker Official Image. EMQX v5.9.0+ will only be available in the [`emqx/emqx`](https://hub.docker.com/r/emqx/emqx) and [`emqx/emqx-enterprise`](https://hub.docker.com/r/emqx/emqx-enterprise) Docker Hub repositories. diff --git a/emqx/metadata.json b/emqx/metadata.json new file mode 100644 index 000000000000..66ae22756c7e --- /dev/null +++ b/emqx/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "message-queues" + ] + } +} diff --git a/erlang/README.md b/erlang/README.md index 71083f41e754..61f39d365e4e 100644 --- a/erlang/README.md +++ b/erlang/README.md @@ -24,25 +24,35 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`26.1.2.0`, `26.1.2`, `26.1`, `26`, `latest`](https://github.com/erlang/docker-erlang-otp/blob/0396950a0c86ad20de42e2033fc68d68587b8e51/26/Dockerfile) -- [`26.1.2.0-slim`, `26.1.2-slim`, `26.1-slim`, `26-slim`, `slim`](https://github.com/erlang/docker-erlang-otp/blob/0396950a0c86ad20de42e2033fc68d68587b8e51/26/slim/Dockerfile) -- [`26.1.2.0-alpine`, `26.1.2-alpine`, `26.1-alpine`, `26-alpine`, `alpine`](https://github.com/erlang/docker-erlang-otp/blob/0396950a0c86ad20de42e2033fc68d68587b8e51/26/alpine/Dockerfile) -- [`25.3.2.6`, `25.3.2`, `25.3`, `25`](https://github.com/erlang/docker-erlang-otp/blob/4179d71533edb030e76fb18085e6c27a1b838215/25/Dockerfile) -- [`25.3.2.6-slim`, `25.3.2-slim`, `25.3-slim`, `25-slim`](https://github.com/erlang/docker-erlang-otp/blob/4179d71533edb030e76fb18085e6c27a1b838215/25/slim/Dockerfile) -- [`25.3.2.6-alpine`, `25.3.2-alpine`, `25.3-alpine`, `25-alpine`](https://github.com/erlang/docker-erlang-otp/blob/4179d71533edb030e76fb18085e6c27a1b838215/25/alpine/Dockerfile) -- [`24.3.4.13`, `24.3.4`, `24.3`, `24`](https://github.com/erlang/docker-erlang-otp/blob/bdc1fbcb4dc2636db8756af66d878a85e7afd0a7/24/Dockerfile) -- [`24.3.4.13-slim`, `24.3.4-slim`, `24.3-slim`, `24-slim`](https://github.com/erlang/docker-erlang-otp/blob/bdc1fbcb4dc2636db8756af66d878a85e7afd0a7/24/slim/Dockerfile) -- [`24.3.4.13-alpine`, `24.3.4-alpine`, `24.3-alpine`, `24-alpine`](https://github.com/erlang/docker-erlang-otp/blob/bdc1fbcb4dc2636db8756af66d878a85e7afd0a7/24/alpine/Dockerfile) -- [`23.3.4.19`, `23.3.4`, `23.3`, `23`](https://github.com/erlang/docker-erlang-otp/blob/91311b4b6e25a98416f87f77004361ce7439fece/23/Dockerfile) -- [`23.3.4.19-slim`, `23.3.4-slim`, `23.3-slim`, `23-slim`](https://github.com/erlang/docker-erlang-otp/blob/91311b4b6e25a98416f87f77004361ce7439fece/23/slim/Dockerfile) -- [`23.3.4.19-alpine`, `23.3.4-alpine`, `23.3-alpine`, `23-alpine`](https://github.com/erlang/docker-erlang-otp/blob/91311b4b6e25a98416f87f77004361ce7439fece/23/alpine/Dockerfile) -- [`22.3.4.26`, `22.3.4`, `22.3`, `22`](https://github.com/erlang/docker-erlang-otp/blob/33d107cb0428c2eeb9d2c3a5cdbc5a6f83bea897/22/Dockerfile) -- [`22.3.4.26-slim`, `22.3.4-slim`, `22.3-slim`, `22-slim`](https://github.com/erlang/docker-erlang-otp/blob/33d107cb0428c2eeb9d2c3a5cdbc5a6f83bea897/22/slim/Dockerfile) -- [`22.3.4.26-alpine`, `22.3.4-alpine`, `22.3-alpine`, `22-alpine`](https://github.com/erlang/docker-erlang-otp/blob/33d107cb0428c2eeb9d2c3a5cdbc5a6f83bea897/22/alpine/Dockerfile) -- [`21.3.8.24`, `21.3.8`, `21.3`, `21`](https://github.com/erlang/docker-erlang-otp/blob/fd21a3bf876b240b413d2cd4543d832dca466c5c/21/Dockerfile) -- [`21.3.8.24-slim`, `21.3.8-slim`, `21.3-slim`, `21-slim`](https://github.com/erlang/docker-erlang-otp/blob/fd21a3bf876b240b413d2cd4543d832dca466c5c/21/slim/Dockerfile) -- [`20.3.8.26`, `20.3.8`, `20.3`, `20`](https://github.com/erlang/docker-erlang-otp/blob/fd21a3bf876b240b413d2cd4543d832dca466c5c/20/Dockerfile) -- [`20.3.8.26-slim`, `20.3.8-slim`, `20.3-slim`, `20-slim`](https://github.com/erlang/docker-erlang-otp/blob/fd21a3bf876b240b413d2cd4543d832dca466c5c/20/slim/Dockerfile) +- [`28.0.1.0`, `28.0.1`, `28.0`, `28`, `latest`](https://github.com/erlang/docker-erlang-otp/blob/0beb465832363629e7b1953b1c40580644d1c95a/28/Dockerfile) + +- [`28.0.1.0-slim`, `28.0.1-slim`, `28.0-slim`, `28-slim`, `slim`](https://github.com/erlang/docker-erlang-otp/blob/0beb465832363629e7b1953b1c40580644d1c95a/28/slim/Dockerfile) + +- [`28.0.1.0-alpine`, `28.0.1-alpine`, `28.0-alpine`, `28-alpine`, `alpine`](https://github.com/erlang/docker-erlang-otp/blob/0beb465832363629e7b1953b1c40580644d1c95a/28/alpine/Dockerfile) + +- [`27.3.4.0`, `27.3.4`, `27.3`, `27`](https://github.com/erlang/docker-erlang-otp/blob/0beb465832363629e7b1953b1c40580644d1c95a/27/Dockerfile) + +- [`27.3.4.0-slim`, `27.3.4-slim`, `27.3-slim`, `27-slim`](https://github.com/erlang/docker-erlang-otp/blob/0beb465832363629e7b1953b1c40580644d1c95a/27/slim/Dockerfile) + +- [`27.3.4.0-alpine`, `27.3.4-alpine`, `27.3-alpine`, `27-alpine`](https://github.com/erlang/docker-erlang-otp/blob/0beb465832363629e7b1953b1c40580644d1c95a/27/alpine/Dockerfile) + +- [`26.2.5.11`, `26.2.5`, `26.2`, `26`](https://github.com/erlang/docker-erlang-otp/blob/0beb465832363629e7b1953b1c40580644d1c95a/26/Dockerfile) + +- [`26.2.5.11-slim`, `26.2.5-slim`, `26.2-slim`, `26-slim`](https://github.com/erlang/docker-erlang-otp/blob/0beb465832363629e7b1953b1c40580644d1c95a/26/slim/Dockerfile) + +- [`26.2.5.11-alpine`, `26.2.5-alpine`, `26.2-alpine`, `26-alpine`](https://github.com/erlang/docker-erlang-otp/blob/0beb465832363629e7b1953b1c40580644d1c95a/26/alpine/Dockerfile) + +- [`25.3.2.20`, `25.3.2`, `25.3`, `25`](https://github.com/erlang/docker-erlang-otp/blob/ee1bc4b04fb25496e02799a5285678072cf31b1e/25/Dockerfile) + +- [`25.3.2.20-slim`, `25.3.2-slim`, `25.3-slim`, `25-slim`](https://github.com/erlang/docker-erlang-otp/blob/ee1bc4b04fb25496e02799a5285678072cf31b1e/25/slim/Dockerfile) + +- [`25.3.2.20-alpine`, `25.3.2-alpine`, `25.3-alpine`, `25-alpine`](https://github.com/erlang/docker-erlang-otp/blob/ee1bc4b04fb25496e02799a5285678072cf31b1e/25/alpine/Dockerfile) + +- [`24.3.4.17`, `24.3.4`, `24.3`, `24`](https://github.com/erlang/docker-erlang-otp/blob/c7e3d58244259ec45bd0b84df7287096d9833d19/24/Dockerfile) + +- [`24.3.4.17-slim`, `24.3.4-slim`, `24.3-slim`, `24-slim`](https://github.com/erlang/docker-erlang-otp/blob/c7e3d58244259ec45bd0b84df7287096d9833d19/24/slim/Dockerfile) + +- [`24.3.4.17-alpine`, `24.3.4-alpine`, `24.3-alpine`, `24-alpine`](https://github.com/erlang/docker-erlang-otp/blob/31b38022c405588392cfb37ff4ccb0cff92873ea/24/alpine/Dockerfile) # Quick reference (cont.) diff --git a/erlang/metadata.json b/erlang/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/erlang/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/express-gateway/README-short.txt b/express-gateway/README-short.txt deleted file mode 100644 index 87c786a48cdf..000000000000 --- a/express-gateway/README-short.txt +++ /dev/null @@ -1 +0,0 @@ -DEPRECATED; The Official Docker Image of Express Gateway, an API Gateway for APIs and Microservices diff --git a/express-gateway/README.md b/express-gateway/README.md deleted file mode 100644 index fe0ccb684f9e..000000000000 --- a/express-gateway/README.md +++ /dev/null @@ -1,124 +0,0 @@ - - -# **DEPRECATION NOTICE** - -This project is no longer maintained. Read [here](https://github.com/ExpressGateway/express-gateway/issues/1011#issuecomment-748354599) for more details or if you're interested in taking over the project. - -# Quick reference - -- **Maintained by**: - [the Express Gateway Team](https://github.com/ExpressGateway/express-gateway) - -- **Where to get help**: - [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) - -# Supported tags and respective `Dockerfile` links - -- [`1.x`, `1.16.x`, `1.16.11`, `latest`](https://github.com/ExpressGateway/docker-express-gateway/blob/fa2707c3b24bbd99710a100d7859566fa28817b8/alpine/Dockerfile) - -# Quick reference (cont.) - -- **Where to file issues**: - [https://github.com/ExpressGateway/express-gateway/issues](https://github.com/ExpressGateway/express-gateway/issues?q=) - -- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/express-gateway/), [`arm64v8`](https://hub.docker.com/r/arm64v8/express-gateway/), [`ppc64le`](https://hub.docker.com/r/ppc64le/express-gateway/), [`s390x`](https://hub.docker.com/r/s390x/express-gateway/) - -- **Published image artifact details**: - [repo-info repo's `repos/express-gateway/` directory](https://github.com/docker-library/repo-info/blob/master/repos/express-gateway) ([history](https://github.com/docker-library/repo-info/commits/master/repos/express-gateway)) - (image metadata, transfer size, etc) - -- **Image updates**: - [official-images repo's `library/express-gateway` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fexpress-gateway) - [official-images repo's `library/express-gateway` file](https://github.com/docker-library/official-images/blob/master/library/express-gateway) ([history](https://github.com/docker-library/official-images/commits/master/library/express-gateway)) - -- **Source of this description**: - [docs repo's `express-gateway/` directory](https://github.com/docker-library/docs/tree/master/express-gateway) ([history](https://github.com/docker-library/docs/commits/master/express-gateway)) - -# What is Express-Gateway? - -Express Gateway is an API Gateway that sits at the heart of any microservices architecture, regardless of what language or platform you're using. Express Gateway secures your microservices and exposes them through APIs using Node.js, ExpressJS and Express middleware. Developing microservices, orchestrating and managing them now can be done insanely fast all on one seamless platform without having to introduce additional infrastructure. - -Express-Gateway's documentation can be found at [https://express-gateway.io/docs](https://express-gateway.io/docs). - -## Main Features - -- Built Entirely on Express and Express Middleware -- Dynamic Centralized Config -- API Consumer and Credentials Management -- Plugins and Plugin Framework -- Distributed Data Store -- CLI -- Admin API - -![logo](https://raw.githubusercontent.com/docker-library/docs/8ee4b026326a61ab0ccf22634eacbbbfbfaaf678/express-gateway/logo.png) - -## How to use this image - -Unless you're using identity features (such as `users`, `applications` and `credentials`), Express-Gateway does not require any data storage. - -If so, skip directly to the point **2**; else, please keep going with this guide. - -### 1. Link Express-Gateway to a Redis container - -#### Start Redis - -Start a Redis container by executing: - -```shell -$ docker run -d --name express-gateway-data-store \ - -p 6379:6379 \ - redis:alpine -``` - -### 2. Start the Express-Gateway instance - -Once the Redis instance has been started (if required), we can start the Express-Gateway instance link it to the Redis container. - -```shell -$ docker run -d --name express-gateway \ - --link eg-database:eg-database \ - -v /my/own/datadir:/var/lib/eg \ - -p 8080:8080 \ - -p 9876:9876 \ - express-gateway -``` - -*Note:* You might want to expose other ports to the host in case you're serving your APIs through **HTTPS**. - -*Note:* You need to mount a volume with configuration files and volumes in order to make Express-Gateway start correctly. - -You can now read the docs at [express-gateway.io/docs](http://express-gateway.io/docs) to learn more about Express-Gateway and configure it accordingly to your needs. - -### Install plugin - -You can install custom plugins to the current Express Gateway image just creating a new `Dockerfile`, use `express-gateway` as base image and then install the required plugins as global yarn packages - -```dockerfile -FROM express-gateway -RUN yarn global add express-gateway-plugin-name -``` - -# License - -View [license information](https://github.com/ExpressGateway/express-gateway/blob/master/LICENSE) for the software contained in this image. - -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). - -Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `express-gateway/` directory](https://github.com/docker-library/repo-info/tree/master/repos/express-gateway). - -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. diff --git a/express-gateway/content.md b/express-gateway/content.md deleted file mode 100644 index 5aa8a3cc9585..000000000000 --- a/express-gateway/content.md +++ /dev/null @@ -1,63 +0,0 @@ -# What is Express-Gateway? - -Express Gateway is an API Gateway that sits at the heart of any microservices architecture, regardless of what language or platform you're using. Express Gateway secures your microservices and exposes them through APIs using Node.js, ExpressJS and Express middleware. Developing microservices, orchestrating and managing them now can be done insanely fast all on one seamless platform without having to introduce additional infrastructure. - -Express-Gateway's documentation can be found at [https://express-gateway.io/docs](https://express-gateway.io/docs). - -## Main Features - -- Built Entirely on Express and Express Middleware -- Dynamic Centralized Config -- API Consumer and Credentials Management -- Plugins and Plugin Framework -- Distributed Data Store -- CLI -- Admin API - -%%LOGO%% - -## How to use this image - -Unless you're using identity features (such as `users`, `applications` and `credentials`), Express-Gateway does not require any data storage. - -If so, skip directly to the point **2**; else, please keep going with this guide. - -### 1. Link Express-Gateway to a Redis container - -#### Start Redis - -Start a Redis container by executing: - -```shell -$ docker run -d --name express-gateway-data-store \ - -p 6379:6379 \ - redis:alpine -``` - -### 2. Start the Express-Gateway instance - -Once the Redis instance has been started (if required), we can start the Express-Gateway instance link it to the Redis container. - -```shell -$ docker run -d --name express-gateway \ - --link eg-database:eg-database \ - -v /my/own/datadir:/var/lib/eg \ - -p 8080:8080 \ - -p 9876:9876 \ - %%IMAGE%% -``` - -*Note:* You might want to expose other ports to the host in case you're serving your APIs through **HTTPS**. - -*Note:* You need to mount a volume with configuration files and volumes in order to make Express-Gateway start correctly. - -You can now read the docs at [express-gateway.io/docs](http://express-gateway.io/docs) to learn more about Express-Gateway and configure it accordingly to your needs. - -### Install plugin - -You can install custom plugins to the current Express Gateway image just creating a new `Dockerfile`, use `%%IMAGE%%` as base image and then install the required plugins as global yarn packages - -```dockerfile -FROM %%IMAGE%% -RUN yarn global add express-gateway-plugin-name -``` diff --git a/express-gateway/deprecated.md b/express-gateway/deprecated.md deleted file mode 100644 index 9a16fcc9850c..000000000000 --- a/express-gateway/deprecated.md +++ /dev/null @@ -1 +0,0 @@ -This project is no longer maintained. Read [here](https://github.com/ExpressGateway/express-gateway/issues/1011#issuecomment-748354599) for more details or if you're interested in taking over the project. diff --git a/express-gateway/github-repo b/express-gateway/github-repo deleted file mode 100644 index ffecc1ea161b..000000000000 --- a/express-gateway/github-repo +++ /dev/null @@ -1 +0,0 @@ -https://github.com/ExpressGateway/express-gateway diff --git a/express-gateway/license.md b/express-gateway/license.md deleted file mode 100644 index 2de981d327aa..000000000000 --- a/express-gateway/license.md +++ /dev/null @@ -1 +0,0 @@ -View [license information](https://github.com/ExpressGateway/express-gateway/blob/master/LICENSE) for the software contained in this image. diff --git a/express-gateway/logo.png b/express-gateway/logo.png deleted file mode 100644 index 1da4074db172..000000000000 Binary files a/express-gateway/logo.png and /dev/null differ diff --git a/express-gateway/maintainer.md b/express-gateway/maintainer.md deleted file mode 100644 index c36ba1070873..000000000000 --- a/express-gateway/maintainer.md +++ /dev/null @@ -1 +0,0 @@ -[the Express Gateway Team](%%GITHUB-REPO%%) diff --git a/fedora/README.md b/fedora/README.md index 48e7cca27d15..db64660e2371 100644 --- a/fedora/README.md +++ b/fedora/README.md @@ -24,10 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`37`](https://github.com/fedora-cloud/docker-brew-fedora/blob/35dc602fb77de3f4cd4baab66574bec64b64240a/x86_64/Dockerfile) -- [`38`](https://github.com/fedora-cloud/docker-brew-fedora/blob/97461ab278dd434ae468092ea9402a29784c4747/x86_64/Dockerfile) -- [`39`, `latest`](https://github.com/fedora-cloud/docker-brew-fedora/blob/f2251d1a1e4487a7df8d56ec4297bfb1ad3e5e46/x86_64/Dockerfile) -- [`40`, `rawhide`](https://github.com/fedora-cloud/docker-brew-fedora/blob/01790edc0998a3812a7b9f94aaa31808d482f87e/x86_64/Dockerfile) +- [`41`](https://github.com/fedora-cloud/docker-brew-fedora/blob/5046bc9c0c11297c8cbaf01ca2e9f44f3e8f328b/x86_64/Dockerfile) + +- [`42`, `latest`](https://github.com/fedora-cloud/docker-brew-fedora/blob/6da1eeae1c9c842f1afdf13abfc4eb5c1f330fdc/x86_64/Dockerfile) + +- [`43`, `rawhide`](https://github.com/fedora-cloud/docker-brew-fedora/blob/cf223078f50157bbf2b9b4206a3bbdac0a00f552/x86_64/Dockerfile) # Quick reference (cont.) diff --git a/fedora/metadata.json b/fedora/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/fedora/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/flink/README.md b/flink/README.md index f57d1c7110a9..069908451477 100644 --- a/flink/README.md +++ b/flink/README.md @@ -24,15 +24,23 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.18.0-scala_2.12-java8`, `1.18-scala_2.12-java8`, `scala_2.12-java8`, `1.18.0-java8`, `1.18-java8`, `java8`](https://github.com/apache/flink-docker/blob/3154e4800c2aa8f183ac4b03dcdc90b14a6404a1/1.18/scala_2.12-java8-ubuntu/Dockerfile) -- [`1.18.0-scala_2.12-java17`, `1.18-scala_2.12-java17`, `scala_2.12-java17`, `1.18.0-java17`, `1.18-java17`, `java17`](https://github.com/apache/flink-docker/blob/3154e4800c2aa8f183ac4b03dcdc90b14a6404a1/1.18/scala_2.12-java17-ubuntu/Dockerfile) -- [`1.18.0-scala_2.12-java11`, `1.18-scala_2.12-java11`, `scala_2.12-java11`, `1.18.0-scala_2.12`, `1.18-scala_2.12`, `scala_2.12`, `1.18.0-java11`, `1.18-java11`, `java11`, `1.18.0`, `1.18`, `latest`](https://github.com/apache/flink-docker/blob/3154e4800c2aa8f183ac4b03dcdc90b14a6404a1/1.18/scala_2.12-java11-ubuntu/Dockerfile) -- [`1.17.1-scala_2.12-java8`, `1.17-scala_2.12-java8`, `1.17.1-java8`, `1.17-java8`](https://github.com/apache/flink-docker/blob/abc36dd88483a221c0f5495c742bd95c349e9ac2/1.17/scala_2.12-java8-ubuntu/Dockerfile) -- [`1.17.1-scala_2.12-java11`, `1.17-scala_2.12-java11`, `1.17.1-scala_2.12`, `1.17-scala_2.12`, `1.17.1-java11`, `1.17-java11`, `1.17.1`, `1.17`](https://github.com/apache/flink-docker/blob/abc36dd88483a221c0f5495c742bd95c349e9ac2/1.17/scala_2.12-java11-ubuntu/Dockerfile) -- [`1.16.2-scala_2.12-java8`, `1.16-scala_2.12-java8`, `1.16.2-java8`, `1.16-java8`](https://github.com/apache/flink-docker/blob/45c6d230407d89aa83b0d170dd056d6868cf808e/1.16/scala_2.12-java8-ubuntu/Dockerfile) -- [`1.16.2-scala_2.12-java11`, `1.16-scala_2.12-java11`, `1.16.2-scala_2.12`, `1.16-scala_2.12`, `1.16.2-java11`, `1.16-java11`, `1.16.2`, `1.16`](https://github.com/apache/flink-docker/blob/45c6d230407d89aa83b0d170dd056d6868cf808e/1.16/scala_2.12-java11-ubuntu/Dockerfile) -- [`1.15.4-scala_2.12-java8`, `1.15-scala_2.12-java8`, `1.15.4-java8`, `1.15-java8`](https://github.com/apache/flink-docker/blob/c9754889a57fad2d8fff2a1975f076a0caebb28c/1.15/scala_2.12-java8-ubuntu/Dockerfile) -- [`1.15.4-scala_2.12-java11`, `1.15-scala_2.12-java11`, `1.15.4-scala_2.12`, `1.15-scala_2.12`, `1.15.4-java11`, `1.15-java11`, `1.15.4`, `1.15`](https://github.com/apache/flink-docker/blob/c9754889a57fad2d8fff2a1975f076a0caebb28c/1.15/scala_2.12-java11-ubuntu/Dockerfile) +- [`2.0.0-scala_2.12-java21`, `2.0-scala_2.12-java21`, `scala_2.12-java21`, `2.0.0-java21`, `2.0-java21`, `java21`](https://github.com/apache/flink-docker/blob/d32c85bcf93b430d56685b54ab5732a20e472e2e/2.0/scala_2.12-java21-ubuntu/Dockerfile) + +- [`2.0.0-scala_2.12-java17`, `2.0-scala_2.12-java17`, `scala_2.12-java17`, `2.0.0-scala_2.12`, `2.0-scala_2.12`, `scala_2.12`, `2.0.0-java17`, `2.0-java17`, `java17`, `2.0.0`, `2.0`, `latest`](https://github.com/apache/flink-docker/blob/d32c85bcf93b430d56685b54ab5732a20e472e2e/2.0/scala_2.12-java17-ubuntu/Dockerfile) + +- [`2.0.0-scala_2.12-java11`, `2.0-scala_2.12-java11`, `scala_2.12-java11`, `2.0.0-java11`, `2.0-java11`, `java11`](https://github.com/apache/flink-docker/blob/d32c85bcf93b430d56685b54ab5732a20e472e2e/2.0/scala_2.12-java11-ubuntu/Dockerfile) + +- [`1.20.1-scala_2.12-java8`, `1.20-scala_2.12-java8`, `1.20.1-java8`, `1.20-java8`](https://github.com/apache/flink-docker/blob/5d24800c76946c9271d285efe16a299b6c0b0607/1.20/scala_2.12-java8-ubuntu/Dockerfile) + +- [`1.20.1-scala_2.12-java17`, `1.20-scala_2.12-java17`, `1.20.1-java17`, `1.20-java17`](https://github.com/apache/flink-docker/blob/5d24800c76946c9271d285efe16a299b6c0b0607/1.20/scala_2.12-java17-ubuntu/Dockerfile) + +- [`1.20.1-scala_2.12-java11`, `1.20-scala_2.12-java11`, `1.20.1-scala_2.12`, `1.20-scala_2.12`, `1.20.1-java11`, `1.20-java11`, `1.20.1`, `1.20`](https://github.com/apache/flink-docker/blob/5d24800c76946c9271d285efe16a299b6c0b0607/1.20/scala_2.12-java11-ubuntu/Dockerfile) + +- [`1.19.2-scala_2.12-java8`, `1.19-scala_2.12-java8`, `1.19.2-java8`, `1.19-java8`](https://github.com/apache/flink-docker/blob/e2765a6d67449ccd22bc75050449b199a3a91302/1.19/scala_2.12-java8-ubuntu/Dockerfile) + +- [`1.19.2-scala_2.12-java17`, `1.19-scala_2.12-java17`, `1.19.2-java17`, `1.19-java17`](https://github.com/apache/flink-docker/blob/e2765a6d67449ccd22bc75050449b199a3a91302/1.19/scala_2.12-java17-ubuntu/Dockerfile) + +- [`1.19.2-scala_2.12-java11`, `1.19-scala_2.12-java11`, `1.19.2-scala_2.12`, `1.19-scala_2.12`, `1.19.2-java11`, `1.19-java11`, `1.19.2`, `1.19`](https://github.com/apache/flink-docker/blob/e2765a6d67449ccd22bc75050449b199a3a91302/1.19/scala_2.12-java11-ubuntu/Dockerfile) # Quick reference (cont.) diff --git a/flink/metadata.json b/flink/metadata.json new file mode 100644 index 000000000000..2b3b7cd7c11f --- /dev/null +++ b/flink/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "data-science" + ] + } +} diff --git a/fluentd/README.md b/fluentd/README.md index 26dbefcc850c..a536ef249e79 100644 --- a/fluentd/README.md +++ b/fluentd/README.md @@ -24,8 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`v1.16.2-1.1`, `v1.16-1`, `latest`](https://github.com/fluent/fluentd-docker-image/blob/a4dd65768ec1819574e570716955276c9089326a/v1.16/alpine/Dockerfile) -- [`v1.16.2-debian-1.1`, `v1.16-debian-1`](https://github.com/fluent/fluentd-docker-image/blob/a4dd65768ec1819574e570716955276c9089326a/v1.16/debian/Dockerfile) +- [`v1.16.9-1.0`, `v1.16-1`](https://github.com/fluent/fluentd-docker-image/blob/505a1af75b4a4adb40d576df7b18cebab853264e/v1.16/alpine/Dockerfile) + +- [`v1.16.9-debian-1.0`, `v1.16-debian-1`](https://github.com/fluent/fluentd-docker-image/blob/505a1af75b4a4adb40d576df7b18cebab853264e/v1.16/debian/Dockerfile) + +- [`v1.18.0-1.0`, `v1.18-1`, `latest`](https://github.com/fluent/fluentd-docker-image/blob/0c3c82df3ec08a46ba346e53c4644cfc667dc703/v1.18/alpine/Dockerfile) + +- [`v1.18.0-debian-1.0`, `v1.18-debian-1`](https://github.com/fluent/fluentd-docker-image/blob/0c3c82df3ec08a46ba346e53c4644cfc667dc703/v1.18/debian/Dockerfile) # Quick reference (cont.) diff --git a/fluentd/metadata.json b/fluentd/metadata.json new file mode 100644 index 000000000000..5f9ae9afb8e1 --- /dev/null +++ b/fluentd/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "monitoring-and-observability" + ] + } +} diff --git a/friendica/README.md b/friendica/README.md index 410ae32e4a6e..bad7d24136c0 100644 --- a/friendica/README.md +++ b/friendica/README.md @@ -24,15 +24,17 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`2023.05-apache`, `apache`, `stable-apache`, `2023.05`, `latest`, `stable`](https://github.com/friendica/docker/blob/74b970887dc7bd2f9127282c86fc6133728cbd71/2023.05/apache/Dockerfile) -- [`2023.05-fpm`, `fpm`, `stable-fpm`](https://github.com/friendica/docker/blob/74b970887dc7bd2f9127282c86fc6133728cbd71/2023.05/fpm/Dockerfile) -- [`2023.05-fpm-alpine`, `fpm-alpine`, `stable-fpm-alpine`](https://github.com/friendica/docker/blob/74b970887dc7bd2f9127282c86fc6133728cbd71/2023.05/fpm-alpine/Dockerfile) -- [`2023.09-dev-apache`, `dev-apache`, `2023.09-dev`, `dev`](https://github.com/friendica/docker/blob/74b970887dc7bd2f9127282c86fc6133728cbd71/2023.09-dev/apache/Dockerfile) -- [`2023.09-dev-fpm`, `dev-fpm`](https://github.com/friendica/docker/blob/74b970887dc7bd2f9127282c86fc6133728cbd71/2023.09-dev/fpm/Dockerfile) -- [`2023.09-dev-fpm-alpine`, `dev-fpm-alpine`](https://github.com/friendica/docker/blob/74b970887dc7bd2f9127282c86fc6133728cbd71/2023.09-dev/fpm-alpine/Dockerfile) -- [`2023.09-rc-apache`, `rc-apache`, `2023.09-rc`, `rc`](https://github.com/friendica/docker/blob/19498098d2b4cf7e3849cfa62b5143a4201000b4/2023.09-rc/apache/Dockerfile) -- [`2023.09-rc-fpm`, `rc-fpm`](https://github.com/friendica/docker/blob/19498098d2b4cf7e3849cfa62b5143a4201000b4/2023.09-rc/fpm/Dockerfile) -- [`2023.09-rc-fpm-alpine`, `rc-fpm-alpine`](https://github.com/friendica/docker/blob/19498098d2b4cf7e3849cfa62b5143a4201000b4/2023.09-rc/fpm-alpine/Dockerfile) +- [`2024.12-apache`, `apache`, `stable-apache`, `2024.12`, `latest`, `stable`](https://github.com/friendica/docker/blob/e56a5124cbf9b88e01f0ebeab0b20d6dfeb25f10/2024.12/apache/Dockerfile) + +- [`2024.12-fpm`, `fpm`, `stable-fpm`](https://github.com/friendica/docker/blob/ae4df4f198515a27ab160bd3679cf91183a17cce/2024.12/fpm/Dockerfile) + +- [`2024.12-fpm-alpine`, `fpm-alpine`, `stable-fpm-alpine`](https://github.com/friendica/docker/blob/ae4df4f198515a27ab160bd3679cf91183a17cce/2024.12/fpm-alpine/Dockerfile) + +- [`2025.02-dev-apache`, `dev-apache`, `2025.02-dev`, `dev`](https://github.com/friendica/docker/blob/e56a5124cbf9b88e01f0ebeab0b20d6dfeb25f10/2025.02-dev/apache/Dockerfile) + +- [`2025.02-dev-fpm`, `dev-fpm`](https://github.com/friendica/docker/blob/ae4df4f198515a27ab160bd3679cf91183a17cce/2025.02-dev/fpm/Dockerfile) + +- [`2025.02-dev-fpm-alpine`, `dev-fpm-alpine`](https://github.com/friendica/docker/blob/ae4df4f198515a27ab160bd3679cf91183a17cce/2025.02-dev/fpm-alpine/Dockerfile) # Quick reference (cont.) @@ -40,7 +42,7 @@ WARNING: [https://github.com/friendica/docker/issues](https://github.com/friendica/docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/friendica/), [`arm32v5`](https://hub.docker.com/r/arm32v5/friendica/), [`arm32v6`](https://hub.docker.com/r/arm32v6/friendica/), [`arm32v7`](https://hub.docker.com/r/arm32v7/friendica/), [`arm64v8`](https://hub.docker.com/r/arm64v8/friendica/), [`i386`](https://hub.docker.com/r/i386/friendica/), [`mips64le`](https://hub.docker.com/r/mips64le/friendica/), [`ppc64le`](https://hub.docker.com/r/ppc64le/friendica/), [`s390x`](https://hub.docker.com/r/s390x/friendica/) + [`amd64`](https://hub.docker.com/r/amd64/friendica/), [`arm32v5`](https://hub.docker.com/r/arm32v5/friendica/), [`arm32v6`](https://hub.docker.com/r/arm32v6/friendica/), [`arm32v7`](https://hub.docker.com/r/arm32v7/friendica/), [`arm64v8`](https://hub.docker.com/r/arm64v8/friendica/), [`i386`](https://hub.docker.com/r/i386/friendica/), [`mips64le`](https://hub.docker.com/r/mips64le/friendica/), [`ppc64le`](https://hub.docker.com/r/ppc64le/friendica/), [`riscv64`](https://hub.docker.com/r/riscv64/friendica/), [`s390x`](https://hub.docker.com/r/s390x/friendica/) - **Published image artifact details**: [repo-info repo's `repos/friendica/` directory](https://github.com/docker-library/repo-info/blob/master/repos/friendica) ([history](https://github.com/docker-library/repo-info/commits/master/repos/friendica)) @@ -67,8 +69,6 @@ The `apache` tag contains a full Friendica installation including an apache web The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Friendica server. To use this image it must be combined with any Webserver that can proxy the http requests to the FastCGI-port of the container. -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/9417aa646ce4a26c904ce2c581ffb70e7a8f82ff/friendica/stack.yml) (Admin-E-Mail: `root@friendica.local`) - ## Using the apache image You need at least one other mariadb/mysql-container to link it to Friendica. @@ -83,13 +83,13 @@ Now you can access the Friendica installation wizard at http://localhost:8080/ f ## Using the fpm image -To use the fpm image you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases you might want use another container or your host as proxy. If you use your host you can address your Friendica container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). In both cases you don't want to map the fpm port to you host. +To use the fpm image you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases you might want use another container or your host as proxy. If you use your host you can address your Friendica container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `compose.yaml` file). In both cases you don't want to map the fpm port to you host. ```console $ docker run -d friendica:fpm ``` -As the fastCGI-Process is not capable of serving static files (style sheets, images, ...) the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the docker-compose section. +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...) the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the Docker Compose section. ## Background tasks @@ -159,18 +159,22 @@ The following environment variables are possible for the SMTP examples. - `SMTP_DOMAIN` The sender domain. (**required** - e.g. `friendica.local`) - `SMTP_FROM` Sender user-part of the address. (Default: `no-reply` - e.g. no-reply@friendica.local) - `SMTP_TLS` Use TLS for connecting the SMTP Mail-Gateway. (Default: empty) -- `SMTP_STARTTLS` Use STARTTLS for connecting the SMTP Mail-Gateway. (Default: empty) +- `SMTP_STARTTLS` Use STARTTLS for connecting the SMTP Mail-Gateway. (Default: `On`) - `SMTP_AUTH` Auth mode for the SMTP Mail-Gateway. (Default: `On`) - `SMTP_AUTH_USER` Username for the SMTP Mail-Gateway. (Default: empty) - `SMTP_AUTH_PASS` Password for the SMTP Mail-Gateway. (Default: empty) +**Addition to STARTTLS** + +the `tls_starttls` setting is either `On` or `Off`, but never unset. That's because in case it's unset, `starttls` would be activated by default (which would need additional configuration like a separate port). + ## Database settings You have to add the Friendica container to the same network as the running database container, e. g. `--network some-network`, and then use `mysql` as the database host on setup. ## Persistent data -The Friendica installation and all data beyond what lives in the database (file uploads, etc) is stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. To make your data persistent to upgrading and get access for backups is using named docker volume or mount a host folder. To achieve this you need one volume for your database container and Friendica. +The Friendica installation and all data beyond what lives in the database (file uploads, etc) is stored in the [unnamed docker volume](https://docs.docker.com/storage/volumes/) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. To make your data persistent to upgrading and get access for backups is using named docker volume or mount a host folder. To achieve this you need one volume for your database container and Friendica. Friendica: @@ -210,8 +214,6 @@ The Friendica image supports auto configuration via environment variables. You c As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: ```yaml -version: '3.2' - services: db: image: mariadb @@ -271,9 +273,9 @@ Currently, this is only supported for `FRIENDICA_ADMIN_MAIL`, `MYSQL_DATABASE`, You have to pull the latest image from the hub (`docker pull friendica`). The stable branch gets checked at every startup and will get updated if no installation was found or a new image is used. -# Running this image with docker-compose +# Running this image with Docker Compose -The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples what you have to look for. +The easiest way to get a fully featured and functional setup is using a `compose.yaml` file. There are too many different possibilities to setup your system, so here are only some examples what you have to look for. At first make sure you have chosen the right base image (fpm or apache) and added the features you wanted (see below). In every case you want to add a database container and docker volumes to get easy access to your persistent data. When you want your server reachable from the internet adding HTTPS-encryption is mandatory! See below for more information. @@ -284,8 +286,6 @@ This version will use the apache image and add a mariaDB container. The volumes Make sure to set the variable `MYSQL_PASSWORD` before run this setup. ```yaml -version: '2' - services: db: image: mariadb @@ -319,7 +319,7 @@ volumes: friendica: ``` -Then run `docker-compose up -d`, now you can access Friendica at http://localhost:8080/ from your system. +Then run `docker compose up -d`, now you can access Friendica at http://localhost:8080/ from your system. ## Base version - FPM @@ -332,11 +332,9 @@ As this setup does **not include encryption** it should to be run behind a proxy Prerequisites for this example: - Make sure to set the variable `MYSQL_PASSWORD` and `MYSQL_USER` before you run the setup. -- Create a `nginx.conf` in the same directory as the docker-compose.yml file (take it from [example](https://github.com/friendica/docker/tree/master/.examples/docker-compose/with-traefik-proxy/mariadb-cron-smtp/fpm/web/nginx.conf)) +- Create a `nginx.conf` in the same directory as the `compose.yaml` file (take it from [example](https://github.com/friendica/docker/tree/master/.examples/docker-compose/with-traefik-proxy/mariadb-cron-smtp/fpm/web/nginx.conf)) ```yaml -version: '2' - services: db: image: mariadb @@ -384,7 +382,7 @@ networks: proxy-tier: ``` -Then run `docker-compose up -d`, now you can access Friendica at http://localhost:8080/ from your system. +Then run `docker compose up -d`, now you can access Friendica at http://localhost:8080/ from your system. # Special settings for DEV/RC images diff --git a/friendica/stack.yml b/friendica/compose.yaml similarity index 98% rename from friendica/stack.yml rename to friendica/compose.yaml index 8248c0f8a0b4..4f963ad2d553 100644 --- a/friendica/stack.yml +++ b/friendica/compose.yaml @@ -1,5 +1,3 @@ -version: '3.2' - services: db: image: mariadb diff --git a/friendica/content.md b/friendica/content.md index df72f372e31a..4914cbbb5211 100644 --- a/friendica/content.md +++ b/friendica/content.md @@ -12,8 +12,6 @@ The `apache` tag contains a full Friendica installation including an apache web The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Friendica server. To use this image it must be combined with any Webserver that can proxy the http requests to the FastCGI-port of the container. -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=%%STACK-URL%%) (Admin-E-Mail: `root@friendica.local`) - ## Using the apache image You need at least one other mariadb/mysql-container to link it to Friendica. @@ -28,13 +26,13 @@ Now you can access the Friendica installation wizard at http://localhost:8080/ f ## Using the fpm image -To use the fpm image you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases you might want use another container or your host as proxy. If you use your host you can address your Friendica container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). In both cases you don't want to map the fpm port to you host. +To use the fpm image you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases you might want use another container or your host as proxy. If you use your host you can address your Friendica container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `compose.yaml` file). In both cases you don't want to map the fpm port to you host. ```console $ docker run -d %%IMAGE%%:fpm ``` -As the fastCGI-Process is not capable of serving static files (style sheets, images, ...) the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the docker-compose section. +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...) the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the Docker Compose section. ## Background tasks @@ -104,18 +102,22 @@ The following environment variables are possible for the SMTP examples. - `SMTP_DOMAIN` The sender domain. (**required** - e.g. `friendica.local`) - `SMTP_FROM` Sender user-part of the address. (Default: `no-reply` - e.g. no-reply@friendica.local) - `SMTP_TLS` Use TLS for connecting the SMTP Mail-Gateway. (Default: empty) -- `SMTP_STARTTLS` Use STARTTLS for connecting the SMTP Mail-Gateway. (Default: empty) +- `SMTP_STARTTLS` Use STARTTLS for connecting the SMTP Mail-Gateway. (Default: `On`) - `SMTP_AUTH` Auth mode for the SMTP Mail-Gateway. (Default: `On`) - `SMTP_AUTH_USER` Username for the SMTP Mail-Gateway. (Default: empty) - `SMTP_AUTH_PASS` Password for the SMTP Mail-Gateway. (Default: empty) +**Addition to STARTTLS** + +the `tls_starttls` setting is either `On` or `Off`, but never unset. That's because in case it's unset, `starttls` would be activated by default (which would need additional configuration like a separate port). + ## Database settings You have to add the Friendica container to the same network as the running database container, e. g. `--network some-network`, and then use `mysql` as the database host on setup. ## Persistent data -The Friendica installation and all data beyond what lives in the database (file uploads, etc) is stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. To make your data persistent to upgrading and get access for backups is using named docker volume or mount a host folder. To achieve this you need one volume for your database container and Friendica. +The Friendica installation and all data beyond what lives in the database (file uploads, etc) is stored in the [unnamed docker volume](https://docs.docker.com/storage/volumes/) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. To make your data persistent to upgrading and get access for backups is using named docker volume or mount a host folder. To achieve this you need one volume for your database container and Friendica. Friendica: @@ -155,8 +157,6 @@ The Friendica image supports auto configuration via environment variables. You c As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: ```yaml -version: '3.2' - services: db: image: mariadb @@ -216,9 +216,9 @@ Currently, this is only supported for `FRIENDICA_ADMIN_MAIL`, `MYSQL_DATABASE`, You have to pull the latest image from the hub (`docker pull %%IMAGE%%`). The stable branch gets checked at every startup and will get updated if no installation was found or a new image is used. -# Running this image with docker-compose +# Running this image with Docker Compose -The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples what you have to look for. +The easiest way to get a fully featured and functional setup is using a `compose.yaml` file. There are too many different possibilities to setup your system, so here are only some examples what you have to look for. At first make sure you have chosen the right base image (fpm or apache) and added the features you wanted (see below). In every case you want to add a database container and docker volumes to get easy access to your persistent data. When you want your server reachable from the internet adding HTTPS-encryption is mandatory! See below for more information. @@ -229,8 +229,6 @@ This version will use the apache image and add a mariaDB container. The volumes Make sure to set the variable `MYSQL_PASSWORD` before run this setup. ```yaml -version: '2' - services: db: image: mariadb @@ -264,7 +262,7 @@ volumes: friendica: ``` -Then run `docker-compose up -d`, now you can access Friendica at http://localhost:8080/ from your system. +Then run `docker compose up -d`, now you can access Friendica at http://localhost:8080/ from your system. ## Base version - FPM @@ -277,11 +275,9 @@ As this setup does **not include encryption** it should to be run behind a proxy Prerequisites for this example: - Make sure to set the variable `MYSQL_PASSWORD` and `MYSQL_USER` before you run the setup. -- Create a `nginx.conf` in the same directory as the docker-compose.yml file (take it from [example](https://github.com/friendica/docker/tree/master/.examples/docker-compose/with-traefik-proxy/mariadb-cron-smtp/fpm/web/nginx.conf)) +- Create a `nginx.conf` in the same directory as the `compose.yaml` file (take it from [example](https://github.com/friendica/docker/tree/master/.examples/docker-compose/with-traefik-proxy/mariadb-cron-smtp/fpm/web/nginx.conf)) ```yaml -version: '2' - services: db: image: mariadb @@ -329,7 +325,7 @@ networks: proxy-tier: ``` -Then run `docker-compose up -d`, now you can access Friendica at http://localhost:8080/ from your system. +Then run `docker compose up -d`, now you can access Friendica at http://localhost:8080/ from your system. # Special settings for DEV/RC images diff --git a/friendica/metadata.json b/friendica/metadata.json new file mode 100644 index 000000000000..e90624aca4ca --- /dev/null +++ b/friendica/metadata.json @@ -0,0 +1,5 @@ +{ + "hub": { + "categories": [] + } +} diff --git a/gazebo/README.md b/gazebo/README.md index f77b417fc5c8..81d832c172f0 100644 --- a/gazebo/README.md +++ b/gazebo/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`gzserver11`, `gzserver11-focal`](https://github.com/osrf/docker_images/blob/532c4f1af8c9dadb54b0c9769543c67c40c0c84f/gazebo/11/ubuntu/focal/gzserver11/Dockerfile) -- [`libgazebo11`, `libgazebo11-focal`, `latest`](https://github.com/osrf/docker_images/blob/532c4f1af8c9dadb54b0c9769543c67c40c0c84f/gazebo/11/ubuntu/focal/libgazebo11/Dockerfile) +- [`gzserver11`, `gzserver11-focal`](https://github.com/osrf/docker_images/blob/f7bb3258d4814deec1eca7e46cbb8d7f4b054431/gazebo/11/ubuntu/focal/gzserver11/Dockerfile) + +- [`libgazebo11`, `libgazebo11-focal`, `latest`](https://github.com/osrf/docker_images/blob/f7bb3258d4814deec1eca7e46cbb8d7f4b054431/gazebo/11/ubuntu/focal/libgazebo11/Dockerfile) # Quick reference (cont.) diff --git a/gazebo/metadata.json b/gazebo/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/gazebo/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/gcc/README.md b/gcc/README.md index 3ad3f06c12fe..f9e47c010710 100644 --- a/gcc/README.md +++ b/gcc/README.md @@ -24,11 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`13.2.0`, `13.2`, `13`, `latest`, `13.2.0-bookworm`, `13.2-bookworm`, `13-bookworm`, `bookworm`](https://github.com/docker-library/gcc/blob/af458ec8254ef7ca3344f12631e2356b20b4a7f1/13/Dockerfile) -- [`12.3.0`, `12.3`, `12`, `12.3.0-bookworm`, `12.3-bookworm`, `12-bookworm`](https://github.com/docker-library/gcc/blob/e7e43ba8177ce15f473d9a799c9e69735e4dbab4/12/Dockerfile) -- [`11.4.0`, `11.4`, `11`, `11.4.0-bullseye`, `11.4-bullseye`, `11-bullseye`](https://github.com/docker-library/gcc/blob/e7e43ba8177ce15f473d9a799c9e69735e4dbab4/11/Dockerfile) -- [`10.5.0`, `10.5`, `10`, `10.5.0-bullseye`, `10.5-bullseye`, `10-bullseye`](https://github.com/docker-library/gcc/blob/82cd9a2f8eb0da43f9b938b92ee78d8747eb16d1/10/Dockerfile) -- [`9.5.0`, `9.5`, `9`, `9.5.0-bullseye`, `9.5-bullseye`, `9-bullseye`](https://github.com/docker-library/gcc/blob/e7e43ba8177ce15f473d9a799c9e69735e4dbab4/9/Dockerfile) +- [`15.1.0`, `15.1`, `15`, `latest`, `15.1.0-bookworm`, `15.1-bookworm`, `15-bookworm`, `bookworm`](https://github.com/docker-library/gcc/blob/a842bfea737b1127a922a27d768df7e382f740af/15/Dockerfile) + +- [`14.3.0`, `14.3`, `14`, `14.3.0-bookworm`, `14.3-bookworm`, `14-bookworm`](https://github.com/docker-library/gcc/blob/d262936418fbf062bb25907d5126a178578ab58b/14/Dockerfile) + +- [`13.4.0`, `13.4`, `13`, `13.4.0-bookworm`, `13.4-bookworm`, `13-bookworm`](https://github.com/docker-library/gcc/blob/118c07a8e6467baababb4634b6cfde14a67c24b0/13/Dockerfile) + +- [`12.4.0`, `12.4`, `12`, `12.4.0-bookworm`, `12.4-bookworm`, `12-bookworm`](https://github.com/docker-library/gcc/blob/b5055bcc1551a7e271af315158e1c260c212409c/12/Dockerfile) # Quick reference (cont.) diff --git a/gcc/metadata.json b/gcc/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/gcc/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/generate-repo-stub-readme.sh b/generate-repo-stub-readme.sh index fb4d6915cdb8..b79ed4bff353 100755 --- a/generate-repo-stub-readme.sh +++ b/generate-repo-stub-readme.sh @@ -24,14 +24,6 @@ if [ -s "$repo/github-repo" ]; then canonicalRepo="$(< "$repo/github-repo")" fi canonicalRepo="$(curl -fsSLI -o /dev/null -w '%{url_effective}\n' "$canonicalRepo")" # follow redirects (http://stackoverflow.com/a/3077316/433558) -githubRepoName="${canonicalRepo#*://github.com/}" - -case "$githubRepoName" in - # Elastic points "github-repo" at their upstream elastic/xyz-docker repos, but we want our README stubs to still point at our integration repos - elastic/*) githubRepoName="docker-library/$repo" ;; - - hylang/hy) githubRepoName='hylang/docker-hylang' ;; -esac maintainer="$(sed -e 's!%%GITHUB-REPO%%!'"$canonicalRepo"'!g' "$repo/maintainer.md")" @@ -61,85 +53,6 @@ The [full image description on Docker Hub]($hubPage) is generated/maintained ove For more information about the full official images change lifecycle, see [the "An image's source changed in Git, now what?" FAQ entry](https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what). For outstanding \`$repo\` image PRs, check [PRs with the "library/$repo" label on the official-images repository](https://github.com/docker-library/official-images/labels/library%2F$repo). For the current "source of truth" for [\`$repo\`]($hubPage), see [the \`library/$repo\` file in the official-images repository](https://github.com/docker-library/official-images/blob/master/library/$repo). -EOREADME - -badges=() - -n=$'\n' -t=$'\t' - -branch='master' -toTest=( - # "image badge URL" - # "image badge link/href" - # "badge test URL (to determine whether badge applies)" - - "https://img.shields.io/github/actions/workflow/status/$githubRepoName/ci.yml?branch=$branch&label=GitHub%20CI" - "https://github.com/$githubRepoName/actions?query=workflow%3A%22GitHub+CI%22+branch%3A$branch" - "https://github.com/$githubRepoName/blob/$branch/.github/workflows/ci.yml" - - "https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/update.sh/job/$repo.svg?label=Automated%20update.sh" - "https://doi-janky.infosiftr.net/job/update.sh/job/$repo/" - "https://doi-janky.infosiftr.net/job/update.sh/job/$repo/" -) - -_wget_spider() { - wget -q -o /dev/null -O /dev/null --spider "$@" -} - -set -- "${toTest[@]}" -while [ "$#" -gt 0 ]; do - image="$1"; shift - url="$1"; shift - testUrl="$1"; shift - if _wget_spider "$testUrl"; then - badges+=( "-${t}[![build status badge]($image)]($url)" ) - fi -done - -arches="$(bashbrew cat --format '{{ range .Entries }}{{ join "\n" .Architectures }}{{ "\n" }}{{ end }}' "https://github.com/docker-library/official-images/raw/master/library/$repo" | sort -u)" -if [ -n "$arches" ]; then - archTable= - i=0 - for arch in $arches put-shared; do - if [ "$arch" = 'put-shared' ]; then - jenkinsJob="job/put-shared/job/light/job/$repo" - if ! _wget_spider "https://doi-janky.infosiftr.net/$jenkinsJob/"; then - jenkinsJob='job/put-shared/job/heavy' - fi - else - jenkinsJob="job/multiarch/job/$arch/job/$repo" - fi - jenkinsLink="https://doi-janky.infosiftr.net/$jenkinsJob/" - jenkinsImage="https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/$jenkinsJob.svg?label=$arch" - if _wget_spider "$jenkinsLink"; then - archTable="${archTable:-|} [![$arch build status badge]($jenkinsImage)]($jenkinsLink) |" - (( i = (i + 1) % 4 )) || : # modulo here needs to match the number of colums used below - if [ "$i" = 0 ]; then - archTable+="${n}|" - fi - fi - done - if [ -n "$archTable" ]; then - if [ "${#badges[@]}" -gt 0 ]; then - badges+=( '' ) - fi - badges+=( "| Build | Status | Badges | (per-arch) |${n}|:-:|:-:|:-:|:-:|${n}${archTable%${n}|}" ) - fi -fi - -if [ "${#badges[@]}" -gt 0 ]; then - IFS=$'\n' - cat <<-EOREADME - - --- - - ${badges[*]} - EOREADME - unset IFS -fi - -cat < EOREADME diff --git a/geonetwork/README.md b/geonetwork/README.md index 576fdab187ab..07b1c7b0fd47 100644 --- a/geonetwork/README.md +++ b/geonetwork/README.md @@ -24,10 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.12.11`, `3.12`, `3`](https://github.com/geonetwork/docker-geonetwork/blob/de27e28bd62ce359bae1940caf83fadc8d5108ac/3.12.11/Dockerfile) -- [`3.12.11-postgres`, `3.12-postgres`, `3-postgres`](https://github.com/geonetwork/docker-geonetwork/blob/de27e28bd62ce359bae1940caf83fadc8d5108ac/3.12.11/postgres/Dockerfile) -- [`4.2.6`, `4.2`](https://github.com/geonetwork/docker-geonetwork/blob/3dd8a6f569eb7755235e770f06c0f6e9659a4277/4.2.6/Dockerfile) -- [`4.4.0`, `4.4`, `4`, `latest`](https://github.com/geonetwork/docker-geonetwork/blob/317a9e76f8300e58207c77f568d384b2444b315b/4.4.0/Dockerfile) +- [`3.12.12`, `3.12`, `3`](https://github.com/geonetwork/docker-geonetwork/blob/17278beab34080c90454c0b7059bd6b49701f979/3.12.12/Dockerfile) + +- [`3.12.12-postgres`, `3.12-postgres`, `3-postgres`](https://github.com/geonetwork/docker-geonetwork/blob/17278beab34080c90454c0b7059bd6b49701f979/3.12.12/postgres/Dockerfile) + +- [`4.2.13`, `4.2`](https://github.com/geonetwork/docker-geonetwork/blob/ca0637409ff44e32b5138a3ef76a48533ba1d595/4.2.13/Dockerfile) + +- [`4.4.8`, `4.4`, `4`, `latest`](https://github.com/geonetwork/docker-geonetwork/blob/ca0637409ff44e32b5138a3ef76a48533ba1d595/4.4.8/Dockerfile) # Quick reference (cont.) @@ -62,80 +65,284 @@ The project is part of the Open Source Geospatial Foundation ( [OSGeo](http://ww ![logo](https://raw.githubusercontent.com/docker-library/docs/6a537ddd2def65eaaa31cbadbaa5303f2dc82fe3/geonetwork/logo.png) -# How to use this image +## How to use this image + +GeoNetwork 4 uses an Elasticsearch server to store the index of the documents it manages so **it can't be run without configuring the URL of the Elasticsearch server**. + +This is a quick example of how to get GeoNetwork 4.4 Latest up and running for demo purposes. This configuration doesn't keep the data if containers are removed. + +```console +docker pull elasticsearch:7.17.15 +docker pull geonetwork:4 + +docker network create gn-network + +docker run -d --name my-es-host --network gn-network -e "discovery.type=single-node" elasticsearch:7.17.15 +docker run --name geonetwork-host --network gn-network -e GN_CONFIG_PROPERTIES="-Des.host=my-es-host -Des.protocol=http -Des.port=9200 -Des.url=http://my-es-host:9200" -p 8080:8080 geonetwork:4 +``` + +For GeoNetwork 4.2 Stable: + +```console +docker pull elasticsearch:7.17.15 +docker pull geonetwork:4.2 + +docker network create gn-network + +docker run -d --name my-es-host --network gn-network -e "discovery.type=single-node" elasticsearch:7.17.15 +docker run --name geonetwork-host --network gn-network -e ES_HOST=my-es-host -e ES_PROTOCOL=http -e ES_PORT=9200 -p 8080:8080 geonetwork:4.2 +``` + +To be sure about what Elasticsearch version to use you can check the [GeoNetwork documentation](https://docs.geonetwork-opensource.org/4.4/install-guide/installing-index/) for your GN version or the `es.version` property in the [`pom.xml`](https://github.com/geonetwork/core-geonetwork/blob/main/pom.xml#L1528C17-L1528C24) file of the GeoNetwork release used. + +### Default credentials + +After installation, use the default credentials: **`admin`** (username) and **`admin`** (password). It is recommended to update the default password after installation. + +### Elasticsearch configuration + +#### Java properties (version 4.4.0 and newer) + +Since GeoNetwork 4.4.0, use Java properties passed in the `GN_CONFIG_PROPERTIES` environment variable for Elasticsearch connection configuration: + +- `es.host`: *optional* (default `localhost`): The host name of the Elasticsearch server. +- `es.port` *optional* (default `9200`): The port where Elasticsearch server is listening to. +- `es.protocol` *optional* (default `http`): The protocol used to talk to Elasticsearch. Can be `http` or `https`. +- `es.url`: **mandatory if host, port or protocol aren't the default values** (default `http://localhost:9200`): Full URL of the Elasticsearch server. +- `es.index.records` *optional* (default `gn_records`): In case you have more than GeoNetwork instance using the same Elasticsearch cluster each one needs to use a different index name. Use this variable to define the name of the index used by each GeoNetwork. +- `es.username` *optional* (default empty): username used to connect to Elasticsearch. +- `es.password` *optional* (default empty): password used to connect to Elasticsearch. +- `kb.url` *optional* (default `http://localhost:5601`): The URL where Kibana is listening. + +Example Docker Compose YAML snippet: + +```yaml +services: + geonetwork: + image: geonetwork:4.4 + environment: + GN_CONFIG_PROPERTIES: >- + -Des.host=elasticsearch + -Des.protocol=http + -Des.port=9200 + -Des.url=http://elasticsearch:9200 + -Des.username=my_es_username + -Des.password=my_es_password + -Dkb.url=http://kibana:5601 +``` + +#### Environment variables (version 4.2 and older) + +For versions older than 4.4.0, configure Elasticsearch using environment variables: -## Start geonetwork +- `ES_HOST` **mandatory**: The host name of the Elasticsearch server. +- `ES_PORT` *optional* (default `9200`): The port where Elasticsearch server is listening to. +- `ES_PROTOCOL` *optional* (default `http`): The protocol used to talk to Elasticsearch. Can be `http` or `https`. +- `ES_INDEX_RECORDS` *optional* (default `gn_records`): In case you have more than GeoNetwork instance using the same Elasticsearch cluster each one needs to use a different index name. Use this variable to define the name of the index used by each GeoNetwork. +- `ES_USERNAME` *optional* (default empty): username used to connect to Elasticsearch. +- `ES_PASSWORD` *optional* (default empty): password used to connect to Elasticsearch. +- `KB_URL` *Optional* (default `http://localhost:5601`): The URL where Kibana is listening. -This command will start a debian-based container, running a Tomcat web server, with a geonetwork war deployed on the server: +### Database configuration + +By default GeoNetwork uses a local **H2 database** for demo use (this one is **not recommended for production**). The image contains JDBC drivers for PostgreSQL and MySQL. To configure the database connection use these environment variables: + +- `GEONETWORK_DB_TYPE`: The type of database to use. Valid values are `postgres`, `postgres-postgis`, `mysql`. The image can be extended including other drivers and these other types could be used too: `db2`, `h2`, `oracle`, `sqlserver`. The JAR drivers for these other databases would need to be added to `/opt/geonetwork/WEB-INF/lib` mounting them as binds or extending the official image. +- `GEONETWORK_DB_HOST`: The database host name. +- `GEONETWORK_DB_PORT`: The database port. +- `GEONETWORK_DB_NAME`: The database name. +- `GEONETWORK_DB_USERNAME`: The username used to connect to the database. +- `GEONETWORK_DB_PASSWORD`: The password used to connect to the database. +- `GEONETWORK_DB_CONNECTION_PROPERTIES`: Additional properties to be added to the connection string, for example `search_path=test,public&ssl=true` will produce a JDBC connection string like `jdbc:postgresql://localhost:5432/postgres?search_path=test,public&ssl=true` + +### Start GeoNetwork + +This command will start a debian-based container, running a Tomcat (GN 3) or Jetty (GN 4) web server, with a GeoNetwork WAR deployed on the server: + +```console +docker run --name some-geonetwork -d geonetwork +``` + +### Publish port + +GeoNetwork listens on port `8080`. If you want to access the container at the host, **you must publish this port**. For instance, this, will redirect all the container traffic on port 8080, to the same port on the host: ```console -$ docker run --name some-geonetwork -d geonetwork +docker run --name some-geonetwork -d -p 8080:8080 geonetwork ``` -## Publish port +Then, if you are running docker on Linux, you may access geonetwork at http://localhost:8080/geonetwork. + +### Set the data directory and H2 db file + +The data directory is the location on the file system where the catalog stores much of its custom configuration and uploaded files. It is also where it stores a number of support files, used for various purposes (e.g.: spatial index, thumbnails). The default variant also uses a local H2 database to store the metadata catalog itself. + +By default, GeoNetwork sets the data directory on `/opt/geonetwork/WEB-INF/data` and H2 database file to the Jetty dir `/var/lib/jetty/gn.h2.db` (since GN 4.0.0) or Tomcat `/usr/local/tomcat/gn.h2.db` (for GN 3), but you may override these values by injecting environment variables into the container: - `-e DATA_DIR=...` (defaults to `/opt/geonetwork/WEB-INF/data`) and `-e GEONETWORK_DB_NAME=...` (defaults to `gn` which sets up database `gn.h2.db` in tomcat bin dir `/usr/local/tomcat`). Note that setting the database location via `GEONETWORK_DB_NAME` only works from version 3.10.3 onwards. -Geonetwork listens on port `8080`. If you want to access the container at the host, **you must publish this port**. For instance, this, will redirect all the container traffic on port 8080, to the same port on the host: +Since version 4.4.0 the data directory needs to be configued using Java properties passed in the `GN_CONFIG_PROPERTIES` environment variable. For example: ```console -$ docker run --name some-geonetwork -d -p 8080:8080 geonetwork +docker run --name some-geonetwork -d -p 8080:8080 -e GN_CONFIG_PROPERTIES="-Dgeonetwork.dir=/catalogue-data" -e GEONETWORK_DB_NAME=/catalogue-data/db/gn geonetwork ``` -Then, if you are running docker on Linux, you may access geonetwork at http://localhost:8080/geonetwork. Otherwise, replace `localhost` by the address of your docker machine. +### Persisting data -## Set the data directory and H2 db file +To set the data directory to `/catalogue-data/data` and H2 database file to `/catalogue-data/db/gn.h2.db` so they both persist through restarts: + +- GeoNetwork 4.2 and older + +```console +docker run --name some-geonetwork -d -p 8080:8080 -e DATA_DIR=/catalogue-data/data -e GEONETWORK_DB_NAME=/catalogue-data/db/gn geonetwork:3 +``` -The data directory is the location on the file system where the catalog stores much of its custom configuration and uploaded files. It is also where it stores a number of support files, used for various purposes (e.g.: Lucene index, spatial index, thumbnails). The default variant also uses a local H2 database to store the metadata catalog itself. +- Since GeoNetwork 4.4.0 -By default, geonetwork sets the data directory on `/usr/local/tomcat/webapps/geonetwork/WEB-INF/data` and H2 database file to the tomcat bin dir `/usr/local/tomcat/gn.h2.db`, but you may override these values by injecting environment variables into the container: - `-e DATA_DIR=...` (defaults to `/usr/local/tomcat/webapps/geonetwork/WEB-INF/data`) and `-e GEONETWORK_DB_NAME=...` (defaults to `gn` which sets up database `gn.h2.db` in tomcat bin dir `/usr/local/tomcat`). Note that setting the database location via `GEONETWORK_DB_NAME` only works from version 3.10.3 onwards. +```console +docker run --name some-geonetwork -d -p 8080:8080 -e GN_CONFIG_PROPERTIES="-Dgeonetwork.dir=/catalogue-data" -e GEONETWORK_DB_NAME=/catalogue-data/db/gn geonetwork +``` -## Persisting data +If you want the data directory to live beyond restarts, or even destruction of the container, you can mount a directory from the docker engine's host into the container. - `-v /host/path:/path/to/data/directory`. For instance this, will mount the host directory `/host/geonetwork-docker` into `/catalogue-data` on the container: -To set the data directory to `/var/lib/geonetwork/data` and H2 database file to `/var/lib/geonetwork/db/gn.h2.db` so they both persist through restarts: +- GeoNetwork 4.2 and older ```console -$ docker run --name some-geonetwork -d -p 8080:8080 -e DATA_DIR=/var/lib/geonetwork/data -e GEONETWORK_DB_NAME=/var/lib/geonetwork/db/gn geonetwork +docker run --name some-geonetwork -d -p 8080:8080 -e DATA_DIR=/catalogue-data/data -e GEONETWORK_DB_NAME=/catalogue-data/db/gn -v /host/geonetwork-docker:/catalogue-data geonetwork:3 ``` -If you want the data directory to live beyond restarts, or even destruction of the container, you can mount a directory from the docker engine's host into the container. - `-v /host/path:/path/to/data/directory`. For instance this, will mount the host directory `/host/geonetwork-docker` into `/var/lib/geonetwork` on the container: +- GeoNetwork 4.4.0 and newer ```console -$ docker run --name some-geonetwork -d -p 8080:8080 -e DATA_DIR=/var/lib/geonetwork/data -e GEONETWORK_DB_NAME=/var/lib/geonetwork/db/gn -v /host/geonetwork-docker:/var/lib/geonetwork geonetwork +docker run --name some-geonetwork -d -p 8080:8080 -e GN_CONFIG_PROPERTIES="-Dgeonetwork.dir=/catalogue-data" -e GEONETWORK_DB_NAME=/catalogue-data/db/gn -v /host/geonetwork-docker:/catalogue-data geonetwork ``` -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +### ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `geonetwork`: +Example `compose.yaml` for `geonetwork`: ```yaml # GeoNetwork # -# Access via "http://localhost:8080/geonetwork" (or "http://$(docker-machine ip):8080/geonetwork" if using docker-machine) +# Access via "http://localhost:8080/geonetwork" # # Default user: admin # Default password: admin -version: '3.1' -services: +volumes: + geonetwork: + esdata: + pgdata: + pglog: +services: geonetwork: - image: geonetwork + image: geonetwork:4.4 + healthcheck: + test: curl http://localhost:8080/ + interval: 5s + timeout: 5s + retries: 30 restart: always + volumes: + - geonetwork:/catalogue-data + depends_on: + database: + condition: service_healthy ports: - 8080:8080 environment: - DATA_DIR: /var/lib/geonetwork_data + WEBAPP_CONTEXT_PATH: /geonetwork + DATA_DIR: /catalogue-data + TZ: Europe/Amsterdam + + JAVA_OPTS: >- + --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED + -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true + -Xms512M -Xss512M -Xmx2G -XX:+UseConcMarkSweepGC + -Djetty.httpConfig.requestHeaderSize=32768 + -Dorg.eclipse.jetty.server.Request.maxFormContentSize=500000 + -Dorg.eclipse.jetty.server.Request.maxFormKeys=4000 + # For remote debug + # -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 + + GN_CONFIG_PROPERTIES: >- + -Dgeonetwork.dir=/catalogue-data + -Dgeonetwork.formatter.dir=/catalogue-data/data/formatter + -Dgeonetwork.schema.dir=/opt/geonetwork/WEB-INF/data/config/schema_plugins + -Dgeonetwork.indexConfig.dir=/opt/geonetwork/WEB-INF/data/config/index + -Dgeonetwork.schemapublication.dir=/opt/geonetwork/WEB-INF/data/resources/schemapublication + -Dgeonetwork.htmlcache.dir=/opt/geonetwork/WEB-INF/data/resources/htmlcache + -Des.host=elasticsearch + -Des.protocol=http + -Des.port=9200 + -Des.url=http://elasticsearch:9200 + -Des.username= + -Des.password= + -Dgeonetwork.ESFeaturesProxy.targetUri=http://elasticsearch:9200/gn-features/{_} + -Dgeonetwork.HttpDashboardProxy.targetUri=http://kibana:5601 + + GEONETWORK_DB_TYPE: postgres-postgis + GEONETWORK_DB_HOST: database + GEONETWORK_DB_PORT: 5432 + GEONETWORK_DB_NAME: geonetwork + GEONETWORK_DB_USERNAME: geonetwork + GEONETWORK_DB_PASSWORD: geonetwork + + database: + image: postgis/postgis:16-3.4 + environment: + POSTGRES_USER: geonetwork + POSTGRES_PASSWORD: geonetwork + POSTGRES_DB: geonetwork + command: [postgres, -c, log_statement=all, -c, logging_collector=true, -c, log_file_mode=0644, -c, log_directory=/var/log/postgresql, -c, log_filename=postgresql.log] + healthcheck: + test: [CMD-SHELL, pg_isready -U postgres] + interval: 5s + timeout: 5s + retries: 5 volumes: - - geonetwork:/var/lib/geonetwork_data + - pgdata:/var/lib/postgresql/data + - pglog:/var/log/postgresql -volumes: - geonetwork: -``` + elasticsearch: + image: elasticsearch:7.17.15 + ports: + - 9200:9200 + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + healthcheck: + test: curl -s http://localhost:9200 >/dev/null || exit 1 + interval: 10s + timeout: 2s + retries: 10 + start_period: 2m + environment: + ES_JAVA_OPTS: -Xms1G -Xmx1G + discovery.type: single-node + volumes: + - esdata:/usr/share/elasticsearch/data -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/9efeec18b6b2ed232cf0fbd3914b6211e16e242c/geonetwork/stack.yml) + kibana: + image: kibana:7.17.15 + environment: + SERVER_NAME: kibana + ELASTICSEARCH_URL: http://elasticsearch:9200/ + SERVER_BASEPATH: /geonetwork/dashboards + SERVER_REWRITEBASEPATH: 'false' + KIBANA_INDEX: .dashboards + XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED: 'true' + depends_on: + elasticsearch: + condition: service_healthy +``` -Run `docker stack deploy -c stack.yml geonetwork` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080/geonetwork`, `http://localhost:8080/geonetwork`, or `http://host-ip:8080/geonetwork` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080/geonetwork` or `http://host-ip:8080/geonetwork` (as appropriate). -## Default credentials +### Default credentials After installation a default user with name `admin` and password `admin` is created. Use this credentials to start with. It is recommended to update the default password after installation. @@ -149,7 +356,7 @@ This is the defacto image. If you are unsure about what your needs are, you prob By default, an H2 database is configured and created when the application first starts. If you are interested in a database engine other than H2, please have a look at other image variants. -## `geonetwork:postgres` +## `geonetwork:postgres` (Only for GeoNetwork 3 series) This image gives support for using [PostgreSQL](https://www.postgresql.org/) as database engine for geonetwork. When you start the container, a database is created, and it is populated by geonetwork, once it starts. @@ -166,25 +373,25 @@ If you want to connect to a postgres server, you need to pass an extra environme If you want to connect to an **external database server**, you can use either the IP address or the DNS as `POSTGRES_DB_HOST`. For instance, if the server is running on `mydns.net`, on port `5434`, the username is `postgres` and the password is `mysecretpassword`: ```console -$ docker run --name geonetwork -d -p 8080:8080 -e POSTGRES_DB_HOST=mydns.net -e POSTGRES_DB_PORT=5434 -e POSTGRES_DB_USERNAME=postgres -e POSTGRES_DB_PASSWORD=mysecretpassword -e POSTGRES_DB_NAME=mydbname geonetwork:postgres +docker run --name geonetwork -d -p 8080:8080 -e POSTGRES_DB_HOST=mydns.net -e POSTGRES_DB_PORT=5434 -e POSTGRES_DB_USERNAME=postgres -e POSTGRES_DB_PASSWORD=mysecretpassword -e POSTGRES_DB_NAME=mydbname geonetwork:postgres ``` If are want to **run postgres on a container**, you can use the container name as `POSTGRES_DB_HOST`: just make sure that containers can discover each other, by **running them in the same user-defined network**. For instance, you can create a bridge network: ```console -$ docker network create --driver bridge mynet +docker network create --driver bridge mynet ``` Then if you want to run the official image of postgres, using `some-postgres` as container name, you could launch it like this: ```console -$ docker run --name some-postgres --network=mynet -d postgres +docker run --name some-postgres --network=mynet -d postgres ``` And then you could launch geonetwork, making sure you join the same network, and setting the required environment variables, including the `POSTGRES_DB_HOST`: ```console -$ docker run --name geonetwork -d -p 8080:8080 --network=mynet -e POSTGRES_DB_HOST=some-postgres -e POSTGRES_DB_PORT=5432 -e POSTGRES_DB_USERNAME=postgres -e POSTGRES_DB_PASSWORD=mysecretpassword -e POSTGRES_DB_NAME=mydbname geonetwork:postgres +docker run --name geonetwork -d -p 8080:8080 --network=mynet -e POSTGRES_DB_HOST=some-postgres -e POSTGRES_DB_PORT=5432 -e POSTGRES_DB_USERNAME=postgres -e POSTGRES_DB_PASSWORD=mysecretpassword -e POSTGRES_DB_NAME=mydbname geonetwork:postgres ``` #### Configuration environment variables diff --git a/geonetwork/compose.yaml b/geonetwork/compose.yaml new file mode 100644 index 000000000000..141fd69e3b12 --- /dev/null +++ b/geonetwork/compose.yaml @@ -0,0 +1,118 @@ +# GeoNetwork +# +# Access via "http://localhost:8080/geonetwork" +# +# Default user: admin +# Default password: admin + +volumes: + geonetwork: + esdata: + pgdata: + pglog: + +services: + geonetwork: + image: geonetwork:4.4 + healthcheck: + test: curl http://localhost:8080/ + interval: 5s + timeout: 5s + retries: 30 + restart: always + volumes: + - geonetwork:/catalogue-data + depends_on: + database: + condition: service_healthy + ports: + - 8080:8080 + environment: + WEBAPP_CONTEXT_PATH: /geonetwork + DATA_DIR: /catalogue-data + TZ: Europe/Amsterdam + + JAVA_OPTS: >- + --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED + -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true + -Xms512M -Xss512M -Xmx2G -XX:+UseConcMarkSweepGC + -Djetty.httpConfig.requestHeaderSize=32768 + -Dorg.eclipse.jetty.server.Request.maxFormContentSize=500000 + -Dorg.eclipse.jetty.server.Request.maxFormKeys=4000 + # For remote debug + # -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 + + GN_CONFIG_PROPERTIES: >- + -Dgeonetwork.dir=/catalogue-data + -Dgeonetwork.formatter.dir=/catalogue-data/data/formatter + -Dgeonetwork.schema.dir=/opt/geonetwork/WEB-INF/data/config/schema_plugins + -Dgeonetwork.indexConfig.dir=/opt/geonetwork/WEB-INF/data/config/index + -Dgeonetwork.schemapublication.dir=/opt/geonetwork/WEB-INF/data/resources/schemapublication + -Dgeonetwork.htmlcache.dir=/opt/geonetwork/WEB-INF/data/resources/htmlcache + -Des.host=elasticsearch + -Des.protocol=http + -Des.port=9200 + -Des.url=http://elasticsearch:9200 + -Des.username= + -Des.password= + -Dgeonetwork.ESFeaturesProxy.targetUri=http://elasticsearch:9200/gn-features/{_} + -Dgeonetwork.HttpDashboardProxy.targetUri=http://kibana:5601 + + GEONETWORK_DB_TYPE: postgres-postgis + GEONETWORK_DB_HOST: database + GEONETWORK_DB_PORT: 5432 + GEONETWORK_DB_NAME: geonetwork + GEONETWORK_DB_USERNAME: geonetwork + GEONETWORK_DB_PASSWORD: geonetwork + + database: + image: postgis/postgis:16-3.4 + environment: + POSTGRES_USER: geonetwork + POSTGRES_PASSWORD: geonetwork + POSTGRES_DB: geonetwork + command: [postgres, -c, log_statement=all, -c, logging_collector=true, -c, log_file_mode=0644, -c, log_directory=/var/log/postgresql, -c, log_filename=postgresql.log] + healthcheck: + test: [CMD-SHELL, pg_isready -U postgres] + interval: 5s + timeout: 5s + retries: 5 + volumes: + - pgdata:/var/lib/postgresql/data + - pglog:/var/log/postgresql + + elasticsearch: + image: elasticsearch:7.17.15 + ports: + - 9200:9200 + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + healthcheck: + test: curl -s http://localhost:9200 >/dev/null || exit 1 + interval: 10s + timeout: 2s + retries: 10 + start_period: 2m + environment: + ES_JAVA_OPTS: -Xms1G -Xmx1G + discovery.type: single-node + volumes: + - esdata:/usr/share/elasticsearch/data + + kibana: + image: kibana:7.17.15 + environment: + SERVER_NAME: kibana + ELASTICSEARCH_URL: http://elasticsearch:9200/ + SERVER_BASEPATH: /geonetwork/dashboards + SERVER_REWRITEBASEPATH: 'false' + KIBANA_INDEX: .dashboards + XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED: 'true' + depends_on: + elasticsearch: + condition: service_healthy diff --git a/geonetwork/content.md b/geonetwork/content.md index 2da1202a0ea8..e35547e5651f 100644 --- a/geonetwork/content.md +++ b/geonetwork/content.md @@ -12,50 +12,160 @@ The project is part of the Open Source Geospatial Foundation ( [OSGeo](http://ww %%LOGO%% -# How to use this image +## How to use this image -## Start geonetwork +GeoNetwork 4 uses an Elasticsearch server to store the index of the documents it manages so **it can't be run without configuring the URL of the Elasticsearch server**. -This command will start a debian-based container, running a Tomcat web server, with a geonetwork war deployed on the server: +This is a quick example of how to get GeoNetwork 4.4 Latest up and running for demo purposes. This configuration doesn't keep the data if containers are removed. ```console -$ docker run --name some-%%REPO%% -d %%IMAGE%% +docker pull elasticsearch:7.17.15 +docker pull %%IMAGE%%:4 + +docker network create gn-network + +docker run -d --name my-es-host --network gn-network -e "discovery.type=single-node" elasticsearch:7.17.15 +docker run --name %%REPO%%-host --network gn-network -e GN_CONFIG_PROPERTIES="-Des.host=my-es-host -Des.protocol=http -Des.port=9200 -Des.url=http://my-es-host:9200" -p 8080:8080 %%IMAGE%%:4 +``` + +For GeoNetwork 4.2 Stable: + +```console +docker pull elasticsearch:7.17.15 +docker pull %%IMAGE%%:4.2 + +docker network create gn-network + +docker run -d --name my-es-host --network gn-network -e "discovery.type=single-node" elasticsearch:7.17.15 +docker run --name %%REPO%%-host --network gn-network -e ES_HOST=my-es-host -e ES_PROTOCOL=http -e ES_PORT=9200 -p 8080:8080 %%IMAGE%%:4.2 +``` + +To be sure about what Elasticsearch version to use you can check the [GeoNetwork documentation](https://docs.geonetwork-opensource.org/4.4/install-guide/installing-index/) for your GN version or the `es.version` property in the [`pom.xml`](https://github.com/geonetwork/core-geonetwork/blob/main/pom.xml#L1528C17-L1528C24) file of the GeoNetwork release used. + +### Default credentials + +After installation, use the default credentials: **`admin`** (username) and **`admin`** (password). It is recommended to update the default password after installation. + +### Elasticsearch configuration + +#### Java properties (version 4.4.0 and newer) + +Since GeoNetwork 4.4.0, use Java properties passed in the `GN_CONFIG_PROPERTIES` environment variable for Elasticsearch connection configuration: + +- `es.host`: *optional* (default `localhost`): The host name of the Elasticsearch server. +- `es.port` *optional* (default `9200`): The port where Elasticsearch server is listening to. +- `es.protocol` *optional* (default `http`): The protocol used to talk to Elasticsearch. Can be `http` or `https`. +- `es.url`: **mandatory if host, port or protocol aren't the default values** (default `http://localhost:9200`): Full URL of the Elasticsearch server. +- `es.index.records` *optional* (default `gn_records`): In case you have more than GeoNetwork instance using the same Elasticsearch cluster each one needs to use a different index name. Use this variable to define the name of the index used by each GeoNetwork. +- `es.username` *optional* (default empty): username used to connect to Elasticsearch. +- `es.password` *optional* (default empty): password used to connect to Elasticsearch. +- `kb.url` *optional* (default `http://localhost:5601`): The URL where Kibana is listening. + +Example Docker Compose YAML snippet: + +```yaml +services: + %%REPO%%: + image: %%IMAGE%%:4.4 + environment: + GN_CONFIG_PROPERTIES: >- + -Des.host=elasticsearch + -Des.protocol=http + -Des.port=9200 + -Des.url=http://elasticsearch:9200 + -Des.username=my_es_username + -Des.password=my_es_password + -Dkb.url=http://kibana:5601 ``` -## Publish port +#### Environment variables (version 4.2 and older) + +For versions older than 4.4.0, configure Elasticsearch using environment variables: + +- `ES_HOST` **mandatory**: The host name of the Elasticsearch server. +- `ES_PORT` *optional* (default `9200`): The port where Elasticsearch server is listening to. +- `ES_PROTOCOL` *optional* (default `http`): The protocol used to talk to Elasticsearch. Can be `http` or `https`. +- `ES_INDEX_RECORDS` *optional* (default `gn_records`): In case you have more than GeoNetwork instance using the same Elasticsearch cluster each one needs to use a different index name. Use this variable to define the name of the index used by each GeoNetwork. +- `ES_USERNAME` *optional* (default empty): username used to connect to Elasticsearch. +- `ES_PASSWORD` *optional* (default empty): password used to connect to Elasticsearch. +- `KB_URL` *Optional* (default `http://localhost:5601`): The URL where Kibana is listening. + +### Database configuration + +By default GeoNetwork uses a local **H2 database** for demo use (this one is **not recommended for production**). The image contains JDBC drivers for PostgreSQL and MySQL. To configure the database connection use these environment variables: -Geonetwork listens on port `8080`. If you want to access the container at the host, **you must publish this port**. For instance, this, will redirect all the container traffic on port 8080, to the same port on the host: +- `GEONETWORK_DB_TYPE`: The type of database to use. Valid values are `postgres`, `postgres-postgis`, `mysql`. The image can be extended including other drivers and these other types could be used too: `db2`, `h2`, `oracle`, `sqlserver`. The JAR drivers for these other databases would need to be added to `/opt/geonetwork/WEB-INF/lib` mounting them as binds or extending the official image. +- `GEONETWORK_DB_HOST`: The database host name. +- `GEONETWORK_DB_PORT`: The database port. +- `GEONETWORK_DB_NAME`: The database name. +- `GEONETWORK_DB_USERNAME`: The username used to connect to the database. +- `GEONETWORK_DB_PASSWORD`: The password used to connect to the database. +- `GEONETWORK_DB_CONNECTION_PROPERTIES`: Additional properties to be added to the connection string, for example `search_path=test,public&ssl=true` will produce a JDBC connection string like `jdbc:postgresql://localhost:5432/postgres?search_path=test,public&ssl=true` + +### Start GeoNetwork + +This command will start a debian-based container, running a Tomcat (GN 3) or Jetty (GN 4) web server, with a GeoNetwork WAR deployed on the server: ```console -$ docker run --name some-%%REPO%% -d -p 8080:8080 %%IMAGE%% +docker run --name some-%%REPO%% -d %%IMAGE%% ``` -Then, if you are running docker on Linux, you may access geonetwork at http://localhost:8080/geonetwork. Otherwise, replace `localhost` by the address of your docker machine. +### Publish port + +GeoNetwork listens on port `8080`. If you want to access the container at the host, **you must publish this port**. For instance, this, will redirect all the container traffic on port 8080, to the same port on the host: + +```console +docker run --name some-%%REPO%% -d -p 8080:8080 %%IMAGE%% +``` -## Set the data directory and H2 db file +Then, if you are running docker on Linux, you may access geonetwork at http://localhost:8080/geonetwork. -The data directory is the location on the file system where the catalog stores much of its custom configuration and uploaded files. It is also where it stores a number of support files, used for various purposes (e.g.: Lucene index, spatial index, thumbnails). The default variant also uses a local H2 database to store the metadata catalog itself. +### Set the data directory and H2 db file -By default, geonetwork sets the data directory on `/usr/local/tomcat/webapps/geonetwork/WEB-INF/data` and H2 database file to the tomcat bin dir `/usr/local/tomcat/gn.h2.db`, but you may override these values by injecting environment variables into the container: - `-e DATA_DIR=...` (defaults to `/usr/local/tomcat/webapps/geonetwork/WEB-INF/data`) and `-e GEONETWORK_DB_NAME=...` (defaults to `gn` which sets up database `gn.h2.db` in tomcat bin dir `/usr/local/tomcat`). Note that setting the database location via `GEONETWORK_DB_NAME` only works from version 3.10.3 onwards. +The data directory is the location on the file system where the catalog stores much of its custom configuration and uploaded files. It is also where it stores a number of support files, used for various purposes (e.g.: spatial index, thumbnails). The default variant also uses a local H2 database to store the metadata catalog itself. + +By default, GeoNetwork sets the data directory on `/opt/geonetwork/WEB-INF/data` and H2 database file to the Jetty dir `/var/lib/jetty/gn.h2.db` (since GN 4.0.0) or Tomcat `/usr/local/tomcat/gn.h2.db` (for GN 3), but you may override these values by injecting environment variables into the container: - `-e DATA_DIR=...` (defaults to `/opt/geonetwork/WEB-INF/data`) and `-e GEONETWORK_DB_NAME=...` (defaults to `gn` which sets up database `gn.h2.db` in tomcat bin dir `/usr/local/tomcat`). Note that setting the database location via `GEONETWORK_DB_NAME` only works from version 3.10.3 onwards. + +Since version 4.4.0 the data directory needs to be configued using Java properties passed in the `GN_CONFIG_PROPERTIES` environment variable. For example: + +```console +docker run --name some-%%REPO%% -d -p 8080:8080 -e GN_CONFIG_PROPERTIES="-Dgeonetwork.dir=/catalogue-data" -e GEONETWORK_DB_NAME=/catalogue-data/db/gn %%IMAGE%% +``` + +### Persisting data + +To set the data directory to `/catalogue-data/data` and H2 database file to `/catalogue-data/db/gn.h2.db` so they both persist through restarts: + +- GeoNetwork 4.2 and older + +```console +docker run --name some-%%REPO%% -d -p 8080:8080 -e DATA_DIR=/catalogue-data/data -e GEONETWORK_DB_NAME=/catalogue-data/db/gn %%IMAGE%%:3 +``` + +- Since GeoNetwork 4.4.0 + +```console +docker run --name some-%%REPO%% -d -p 8080:8080 -e GN_CONFIG_PROPERTIES="-Dgeonetwork.dir=/catalogue-data" -e GEONETWORK_DB_NAME=/catalogue-data/db/gn %%IMAGE%% +``` -## Persisting data +If you want the data directory to live beyond restarts, or even destruction of the container, you can mount a directory from the docker engine's host into the container. - `-v /host/path:/path/to/data/directory`. For instance this, will mount the host directory `/host/%%REPO%%-docker` into `/catalogue-data` on the container: -To set the data directory to `/var/lib/geonetwork/data` and H2 database file to `/var/lib/geonetwork/db/gn.h2.db` so they both persist through restarts: +- GeoNetwork 4.2 and older ```console -$ docker run --name some-%%REPO%% -d -p 8080:8080 -e DATA_DIR=/var/lib/geonetwork/data -e GEONETWORK_DB_NAME=/var/lib/geonetwork/db/gn %%IMAGE%% +docker run --name some-%%REPO%% -d -p 8080:8080 -e DATA_DIR=/catalogue-data/data -e GEONETWORK_DB_NAME=/catalogue-data/db/gn -v /host/%%REPO%%-docker:/catalogue-data %%IMAGE%%:3 ``` -If you want the data directory to live beyond restarts, or even destruction of the container, you can mount a directory from the docker engine's host into the container. - `-v /host/path:/path/to/data/directory`. For instance this, will mount the host directory `/host/geonetwork-docker` into `/var/lib/geonetwork` on the container: +- GeoNetwork 4.4.0 and newer ```console -$ docker run --name some-%%REPO%% -d -p 8080:8080 -e DATA_DIR=/var/lib/geonetwork/data -e GEONETWORK_DB_NAME=/var/lib/geonetwork/db/gn -v /host/geonetwork-docker:/var/lib/geonetwork %%IMAGE%% +docker run --name some-%%REPO%% -d -p 8080:8080 -e GN_CONFIG_PROPERTIES="-Dgeonetwork.dir=/catalogue-data" -e GEONETWORK_DB_NAME=/catalogue-data/db/gn -v /host/%%REPO%%-docker:/catalogue-data %%IMAGE%% ``` -## %%STACK%% +### %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080/geonetwork`, `http://localhost:8080/geonetwork`, or `http://host-ip:8080/geonetwork` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080/geonetwork` or `http://host-ip:8080/geonetwork` (as appropriate). -## Default credentials +### Default credentials After installation a default user with name `admin` and password `admin` is created. Use this credentials to start with. It is recommended to update the default password after installation. diff --git a/geonetwork/metadata.json b/geonetwork/metadata.json new file mode 100644 index 000000000000..2b3b7cd7c11f --- /dev/null +++ b/geonetwork/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "data-science" + ] + } +} diff --git a/geonetwork/stack.yml b/geonetwork/stack.yml deleted file mode 100644 index 0be0b317b9f4..000000000000 --- a/geonetwork/stack.yml +++ /dev/null @@ -1,22 +0,0 @@ -# GeoNetwork -# -# Access via "http://localhost:8080/geonetwork" (or "http://$(docker-machine ip):8080/geonetwork" if using docker-machine) -# -# Default user: admin -# Default password: admin - -version: '3.1' -services: - - geonetwork: - image: geonetwork - restart: always - ports: - - 8080:8080 - environment: - DATA_DIR: /var/lib/geonetwork_data - volumes: - - geonetwork:/var/lib/geonetwork_data - -volumes: - geonetwork: diff --git a/geonetwork/variant-postgres.md b/geonetwork/variant-postgres.md index c98907ff818d..670977649573 100644 --- a/geonetwork/variant-postgres.md +++ b/geonetwork/variant-postgres.md @@ -1,4 +1,4 @@ -## `%%REPO%%:postgres` +## `%%REPO%%:postgres` (Only for GeoNetwork 3 series) This image gives support for using [PostgreSQL](https://www.postgresql.org/) as database engine for geonetwork. When you start the container, a database is created, and it is populated by geonetwork, once it starts. @@ -15,25 +15,25 @@ If you want to connect to a postgres server, you need to pass an extra environme If you want to connect to an **external database server**, you can use either the IP address or the DNS as `POSTGRES_DB_HOST`. For instance, if the server is running on `mydns.net`, on port `5434`, the username is `postgres` and the password is `mysecretpassword`: ```console -$ docker run --name geonetwork -d -p 8080:8080 -e POSTGRES_DB_HOST=mydns.net -e POSTGRES_DB_PORT=5434 -e POSTGRES_DB_USERNAME=postgres -e POSTGRES_DB_PASSWORD=mysecretpassword -e POSTGRES_DB_NAME=mydbname geonetwork:postgres +docker run --name geonetwork -d -p 8080:8080 -e POSTGRES_DB_HOST=mydns.net -e POSTGRES_DB_PORT=5434 -e POSTGRES_DB_USERNAME=postgres -e POSTGRES_DB_PASSWORD=mysecretpassword -e POSTGRES_DB_NAME=mydbname geonetwork:postgres ``` If are want to **run postgres on a container**, you can use the container name as `POSTGRES_DB_HOST`: just make sure that containers can discover each other, by **running them in the same user-defined network**. For instance, you can create a bridge network: ```console -$ docker network create --driver bridge mynet +docker network create --driver bridge mynet ``` Then if you want to run the official image of postgres, using `some-postgres` as container name, you could launch it like this: ```console -$ docker run --name some-postgres --network=mynet -d postgres +docker run --name some-postgres --network=mynet -d postgres ``` And then you could launch geonetwork, making sure you join the same network, and setting the required environment variables, including the `POSTGRES_DB_HOST`: ```console -$ docker run --name geonetwork -d -p 8080:8080 --network=mynet -e POSTGRES_DB_HOST=some-postgres -e POSTGRES_DB_PORT=5432 -e POSTGRES_DB_USERNAME=postgres -e POSTGRES_DB_PASSWORD=mysecretpassword -e POSTGRES_DB_NAME=mydbname geonetwork:postgres +docker run --name geonetwork -d -p 8080:8080 --network=mynet -e POSTGRES_DB_HOST=some-postgres -e POSTGRES_DB_PORT=5432 -e POSTGRES_DB_USERNAME=postgres -e POSTGRES_DB_PASSWORD=mysecretpassword -e POSTGRES_DB_NAME=mydbname geonetwork:postgres ``` #### Configuration environment variables diff --git a/get-categories.sh b/get-categories.sh new file mode 100755 index 000000000000..7d678f700757 --- /dev/null +++ b/get-categories.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +workdir="$(readlink -f "$BASH_SOURCE")" +workdir="$(dirname "$workdir")" + +jsonFile='metadata.json' +canonicalMetadataFile="$workdir/$jsonFile" + +# add categories slugs to canonicalMetadataFile without losing other keys there +curl -fsSL https://hub.docker.com/v2/categories | jq -s --sort-keys ' + .[0] as $allCategories + | .[1] + | .hub.categories = ( [ $allCategories[].slug ] | sort ) +' - "$canonicalMetadataFile" | tee "$canonicalMetadataFile.new" +mv "$canonicalMetadataFile.new" "$canonicalMetadataFile" diff --git a/ghost/README-short.txt b/ghost/README-short.txt index 74097a2bf7c1..00045aa8b086 100644 --- a/ghost/README-short.txt +++ b/ghost/README-short.txt @@ -1 +1 @@ -Ghost is a free and open source blogging platform written in JavaScript +Publish by web and email newsletter, with member signups and subscription payments. \ No newline at end of file diff --git a/ghost/README.md b/ghost/README.md index a3c6db1e1848..9c15fd27dfe9 100644 --- a/ghost/README.md +++ b/ghost/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.73.2`, `5.73`, `5`, `latest`](https://github.com/docker-library/ghost/blob/df9831005348f76f5b480061ec27371a5264d823/5/debian/Dockerfile) -- [`5.73.2-alpine`, `5.73-alpine`, `5-alpine`, `alpine`](https://github.com/docker-library/ghost/blob/df9831005348f76f5b480061ec27371a5264d823/5/alpine/Dockerfile) +- [`5.125.1`, `5.125`, `5`, `latest`](https://github.com/docker-library/ghost/blob/f192ab96781889a1452aca93916e67850c1294f2/5/debian/Dockerfile) + +- [`5.125.1-alpine`, `5.125-alpine`, `5-alpine`, `alpine`](https://github.com/docker-library/ghost/blob/f192ab96781889a1452aca93916e67850c1294f2/5/alpine/Dockerfile) # Quick reference (cont.) @@ -48,11 +49,11 @@ WARNING: # Ghost -Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications. +Ghost is an independent platform for publishing online by web and email newsletter. It has user signups, gated access and subscription payments built-in (with Stripe) to allow you to build a direct relationship with your audience. It's fast, user-friendly, and runs on Node.js & MySQL8. -> [wikipedia.org/wiki/Ghost_(blogging_platform)](http://en.wikipedia.org/wiki/Ghost_%28blogging_platform%29) +> [Ghost.org)](https://ghost.org) -![logo](https://raw.githubusercontent.com/docker-library/docs/c5b6d94dc8f0557925ab37ca43141c0efc5cc363/ghost/logo.png) +![logo](https://raw.githubusercontent.com/docker-library/docs/c88522f95bebcab2322f3020f2f735210286939b/ghost/logo.png) # How to use this image @@ -92,7 +93,7 @@ $ docker run -d \ ghost:alpine ``` -Note: `database__connection__filename` is only valid in development mode and is the location for the SQLite database file. If using development mode, it should be set to a writeable path within a persistent folder (bind mount or volume). It is not available in production mode because an external MySQL server is required (see the `docker-compose` example below). +Note: `database__connection__filename` is only valid in development mode and is the location for the SQLite database file. If using development mode, it should be set to a writeable path within a persistent folder (bind mount or volume). It is not available in production mode because an external MySQL server is required (see the Docker Compose example below). ### Docker Volume @@ -116,7 +117,7 @@ All Ghost configuration parameters (such as `url`) can be specified via environm $ docker run -d --name some-ghost -e NODE_ENV=development -e url=http://some-ghost.example.com ghost ``` -(There are further configuration examples in the `stack.yml` listed below.) +(There are further configuration examples in the `compose.yaml` listed below.) ## What is the Node.js version? @@ -137,17 +138,15 @@ To run Ghost for production you'll also need to be running with MySQL 8, https, The following example demonstrates some of the necessary configuration for running with MySQL. For more detail, see [Ghost's "Configuration options" documentation](https://ghost.org/docs/config/#configuration-options). -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `ghost`: +Example `compose.yaml` for `ghost`: ```yaml -version: '3.1' - services: ghost: - image: ghost:4-alpine + image: ghost:5-alpine restart: always ports: - 8080:2368 @@ -162,17 +161,23 @@ services: url: http://localhost:8080 # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired) #NODE_ENV: development + volumes: + - ghost:/var/lib/ghost/content db: image: mysql:8.0 restart: always environment: MYSQL_ROOT_PASSWORD: example -``` + volumes: + - db:/var/lib/mysql -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/57f9907ee5bbeaede8c97f439b9c11bc1081dd75/ghost/stack.yml) +volumes: + ghost: + db: +``` -Run `docker stack deploy -c stack.yml ghost` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). # Image Variants diff --git a/ghost/stack.yml b/ghost/compose.yaml similarity index 84% rename from ghost/stack.yml rename to ghost/compose.yaml index eefc6e8a709b..4fd4097e35ac 100644 --- a/ghost/stack.yml +++ b/ghost/compose.yaml @@ -1,9 +1,7 @@ -version: '3.1' - services: ghost: - image: ghost:4-alpine + image: ghost:5-alpine restart: always ports: - 8080:2368 @@ -18,9 +16,17 @@ services: url: http://localhost:8080 # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired) #NODE_ENV: development + volumes: + - ghost:/var/lib/ghost/content db: image: mysql:8.0 restart: always environment: MYSQL_ROOT_PASSWORD: example + volumes: + - db:/var/lib/mysql + +volumes: + ghost: + db: diff --git a/ghost/content.md b/ghost/content.md index 4a9f1607841d..7c20e087015e 100644 --- a/ghost/content.md +++ b/ghost/content.md @@ -1,8 +1,8 @@ # Ghost -Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications. +Ghost is an independent platform for publishing online by web and email newsletter. It has user signups, gated access and subscription payments built-in (with Stripe) to allow you to build a direct relationship with your audience. It's fast, user-friendly, and runs on Node.js & MySQL8. -> [wikipedia.org/wiki/Ghost_(blogging_platform)](http://en.wikipedia.org/wiki/Ghost_%28blogging_platform%29) +> [Ghost.org)](https://ghost.org) %%LOGO%% @@ -44,7 +44,7 @@ $ docker run -d \ %%IMAGE%%:alpine ``` -Note: `database__connection__filename` is only valid in development mode and is the location for the SQLite database file. If using development mode, it should be set to a writeable path within a persistent folder (bind mount or volume). It is not available in production mode because an external MySQL server is required (see the `docker-compose` example below). +Note: `database__connection__filename` is only valid in development mode and is the location for the SQLite database file. If using development mode, it should be set to a writeable path within a persistent folder (bind mount or volume). It is not available in production mode because an external MySQL server is required (see the Docker Compose example below). ### Docker Volume @@ -68,7 +68,7 @@ All Ghost configuration parameters (such as `url`) can be specified via environm $ docker run -d --name some-ghost -e NODE_ENV=development -e url=http://some-ghost.example.com %%IMAGE%% ``` -(There are further configuration examples in the `stack.yml` listed below.) +(There are further configuration examples in the `compose.yaml` listed below.) ## What is the Node.js version? @@ -89,6 +89,6 @@ To run Ghost for production you'll also need to be running with MySQL 8, https, The following example demonstrates some of the necessary configuration for running with MySQL. For more detail, see [Ghost's "Configuration options" documentation](https://ghost.org/docs/config/#configuration-options). -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). diff --git a/ghost/logo.png b/ghost/logo.png index d3f2d3cebe18..efe7f2243a30 100644 Binary files a/ghost/logo.png and b/ghost/logo.png differ diff --git a/ghost/metadata.json b/ghost/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/ghost/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/golang/README.md b/golang/README.md index 70bed875c604..9dd6d95523b2 100644 --- a/golang/README.md +++ b/golang/README.md @@ -28,45 +28,106 @@ WARNING: ## Simple Tags -- [`1.21.4-bookworm`, `1.21-bookworm`, `1-bookworm`, `bookworm`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/bookworm/Dockerfile) -- [`1.21.4-bullseye`, `1.21-bullseye`, `1-bullseye`, `bullseye`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/bullseye/Dockerfile) -- [`1.21.4-alpine3.18`, `1.21-alpine3.18`, `1-alpine3.18`, `alpine3.18`, `1.21.4-alpine`, `1.21-alpine`, `1-alpine`, `alpine`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/alpine3.18/Dockerfile) -- [`1.21.4-alpine3.17`, `1.21-alpine3.17`, `1-alpine3.17`, `alpine3.17`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/alpine3.17/Dockerfile) -- [`1.21.4-windowsservercore-ltsc2022`, `1.21-windowsservercore-ltsc2022`, `1-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/windowsservercore-ltsc2022/Dockerfile) -- [`1.21.4-windowsservercore-1809`, `1.21-windowsservercore-1809`, `1-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/windowsservercore-1809/Dockerfile) -- [`1.21.4-nanoserver-ltsc2022`, `1.21-nanoserver-ltsc2022`, `1-nanoserver-ltsc2022`, `nanoserver-ltsc2022`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/nanoserver-ltsc2022/Dockerfile) -- [`1.21.4-nanoserver-1809`, `1.21-nanoserver-1809`, `1-nanoserver-1809`, `nanoserver-1809`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/nanoserver-1809/Dockerfile) -- [`1.20.11-bookworm`, `1.20-bookworm`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/bookworm/Dockerfile) -- [`1.20.11-bullseye`, `1.20-bullseye`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/bullseye/Dockerfile) -- [`1.20.11-alpine3.18`, `1.20-alpine3.18`, `1.20.11-alpine`, `1.20-alpine`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/alpine3.18/Dockerfile) -- [`1.20.11-alpine3.17`, `1.20-alpine3.17`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/alpine3.17/Dockerfile) -- [`1.20.11-windowsservercore-ltsc2022`, `1.20-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/windowsservercore-ltsc2022/Dockerfile) -- [`1.20.11-windowsservercore-1809`, `1.20-windowsservercore-1809`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/windowsservercore-1809/Dockerfile) -- [`1.20.11-nanoserver-ltsc2022`, `1.20-nanoserver-ltsc2022`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/nanoserver-ltsc2022/Dockerfile) -- [`1.20.11-nanoserver-1809`, `1.20-nanoserver-1809`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/nanoserver-1809/Dockerfile) +- [`1.25rc1-bookworm`, `1.25-rc-bookworm`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/bookworm/Dockerfile) + +- [`1.25rc1-bullseye`, `1.25-rc-bullseye`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/bullseye/Dockerfile) + +- [`1.25rc1-alpine3.22`, `1.25-rc-alpine3.22`, `1.25rc1-alpine`, `1.25-rc-alpine`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/alpine3.22/Dockerfile) + +- [`1.25rc1-alpine3.21`, `1.25-rc-alpine3.21`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/alpine3.21/Dockerfile) + +- [`1.25rc1-windowsservercore-ltsc2025`, `1.25-rc-windowsservercore-ltsc2025`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`1.25rc1-windowsservercore-ltsc2022`, `1.25-rc-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`1.24.4-bookworm`, `1.24-bookworm`, `1-bookworm`, `bookworm`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/bookworm/Dockerfile) + +- [`1.24.4-bullseye`, `1.24-bullseye`, `1-bullseye`, `bullseye`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/bullseye/Dockerfile) + +- [`1.24.4-alpine3.22`, `1.24-alpine3.22`, `1-alpine3.22`, `alpine3.22`, `1.24.4-alpine`, `1.24-alpine`, `1-alpine`, `alpine`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/alpine3.22/Dockerfile) + +- [`1.24.4-alpine3.21`, `1.24-alpine3.21`, `1-alpine3.21`, `alpine3.21`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/alpine3.21/Dockerfile) + +- [`1.24.4-windowsservercore-ltsc2025`, `1.24-windowsservercore-ltsc2025`, `1-windowsservercore-ltsc2025`, `windowsservercore-ltsc2025`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`1.24.4-windowsservercore-ltsc2022`, `1.24-windowsservercore-ltsc2022`, `1-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`1.24.4-nanoserver-ltsc2025`, `1.24-nanoserver-ltsc2025`, `1-nanoserver-ltsc2025`, `nanoserver-ltsc2025`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/nanoserver-ltsc2025/Dockerfile) + +- [`1.24.4-nanoserver-ltsc2022`, `1.24-nanoserver-ltsc2022`, `1-nanoserver-ltsc2022`, `nanoserver-ltsc2022`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/nanoserver-ltsc2022/Dockerfile) + +- [`1.23.10-bookworm`, `1.23-bookworm`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/bookworm/Dockerfile) + +- [`1.23.10-bullseye`, `1.23-bullseye`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/bullseye/Dockerfile) + +- [`1.23.10-alpine3.22`, `1.23-alpine3.22`, `1.23.10-alpine`, `1.23-alpine`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/alpine3.22/Dockerfile) + +- [`1.23.10-alpine3.21`, `1.23-alpine3.21`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/alpine3.21/Dockerfile) + +- [`1.23.10-windowsservercore-ltsc2025`, `1.23-windowsservercore-ltsc2025`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`1.23.10-windowsservercore-ltsc2022`, `1.23-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`1.23.10-nanoserver-ltsc2025`, `1.23-nanoserver-ltsc2025`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/nanoserver-ltsc2025/Dockerfile) + +- [`1.23.10-nanoserver-ltsc2022`, `1.23-nanoserver-ltsc2022`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/nanoserver-ltsc2022/Dockerfile) + +- [`tip-20250613-bookworm`, `tip-bookworm`](https://github.com/docker-library/golang/blob/0600de98a144e433e13617ec64523cb58ecd7bc0/tip/bookworm/Dockerfile) + +- [`tip-20250613-bullseye`, `tip-bullseye`](https://github.com/docker-library/golang/blob/0600de98a144e433e13617ec64523cb58ecd7bc0/tip/bullseye/Dockerfile) + +- [`tip-20250613-alpine3.22`, `tip-alpine3.22`, `tip-20250613-alpine`, `tip-alpine`](https://github.com/docker-library/golang/blob/0600de98a144e433e13617ec64523cb58ecd7bc0/tip/alpine3.22/Dockerfile) + +- [`tip-20250613-alpine3.21`, `tip-alpine3.21`](https://github.com/docker-library/golang/blob/0600de98a144e433e13617ec64523cb58ecd7bc0/tip/alpine3.21/Dockerfile) ## Shared Tags -- `1.21.4`, `1.21`, `1`, `latest`: - - [`1.21.4-bookworm`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/bookworm/Dockerfile) - - [`1.21.4-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.21.4-windowsservercore-1809`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/windowsservercore-1809/Dockerfile) -- `1.21.4-windowsservercore`, `1.21-windowsservercore`, `1-windowsservercore`, `windowsservercore`: - - [`1.21.4-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.21.4-windowsservercore-1809`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/windowsservercore-1809/Dockerfile) -- `1.21.4-nanoserver`, `1.21-nanoserver`, `1-nanoserver`, `nanoserver`: - - [`1.21.4-nanoserver-ltsc2022`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/nanoserver-ltsc2022/Dockerfile) - - [`1.21.4-nanoserver-1809`](https://github.com/docker-library/golang/blob/e787bff89247be4ce5a642335fd94e866a188902/1.21/windows/nanoserver-1809/Dockerfile) -- `1.20.11`, `1.20`: - - [`1.20.11-bookworm`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/bookworm/Dockerfile) - - [`1.20.11-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.20.11-windowsservercore-1809`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/windowsservercore-1809/Dockerfile) -- `1.20.11-windowsservercore`, `1.20-windowsservercore`: - - [`1.20.11-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.20.11-windowsservercore-1809`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/windowsservercore-1809/Dockerfile) -- `1.20.11-nanoserver`, `1.20-nanoserver`: - - [`1.20.11-nanoserver-ltsc2022`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/nanoserver-ltsc2022/Dockerfile) - - [`1.20.11-nanoserver-1809`](https://github.com/docker-library/golang/blob/345618568a127e06435ed46d0a6b01eecd714989/1.20/windows/nanoserver-1809/Dockerfile) +- `1.25rc1`, `1.25-rc`: + + - [`1.25rc1-bookworm`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/bookworm/Dockerfile) + - [`1.25rc1-windowsservercore-ltsc2025`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.25rc1-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.25rc1-windowsservercore`, `1.25-rc-windowsservercore`: + + - [`1.25rc1-windowsservercore-ltsc2025`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.25rc1-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/37f4c078c0906f4c2226072dcbb81e6e9bc439dc/1.25-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.24.4`, `1.24`, `1`, `latest`: + + - [`1.24.4-bookworm`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/bookworm/Dockerfile) + - [`1.24.4-windowsservercore-ltsc2025`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.24.4-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.24.4-windowsservercore`, `1.24-windowsservercore`, `1-windowsservercore`, `windowsservercore`: + + - [`1.24.4-windowsservercore-ltsc2025`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.24.4-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.24.4-nanoserver`, `1.24-nanoserver`, `1-nanoserver`, `nanoserver`: + + - [`1.24.4-nanoserver-ltsc2025`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/nanoserver-ltsc2025/Dockerfile) + - [`1.24.4-nanoserver-ltsc2022`](https://github.com/docker-library/golang/blob/205cf586b0d0c7200e0fd642feaf738ddb382da0/1.24/windows/nanoserver-ltsc2022/Dockerfile) + +- `1.23.10`, `1.23`: + + - [`1.23.10-bookworm`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/bookworm/Dockerfile) + - [`1.23.10-windowsservercore-ltsc2025`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.23.10-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.23.10-windowsservercore`, `1.23-windowsservercore`: + + - [`1.23.10-windowsservercore-ltsc2025`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.23.10-windowsservercore-ltsc2022`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.23.10-nanoserver`, `1.23-nanoserver`: + + - [`1.23.10-nanoserver-ltsc2025`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/nanoserver-ltsc2025/Dockerfile) + - [`1.23.10-nanoserver-ltsc2022`](https://github.com/docker-library/golang/blob/696a3e93441e4e8ec740f0bff37a96a0983749e5/1.23/windows/nanoserver-ltsc2022/Dockerfile) + +- `tip-20250613`, `tip`: + + - [`tip-20250613-bookworm`](https://github.com/docker-library/golang/blob/0600de98a144e433e13617ec64523cb58ecd7bc0/tip/bookworm/Dockerfile) # Quick reference (cont.) @@ -74,7 +135,7 @@ WARNING: [https://github.com/docker-library/golang/issues](https://github.com/docker-library/golang/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/golang/), [`arm32v5`](https://hub.docker.com/r/arm32v5/golang/), [`arm32v6`](https://hub.docker.com/r/arm32v6/golang/), [`arm32v7`](https://hub.docker.com/r/arm32v7/golang/), [`arm64v8`](https://hub.docker.com/r/arm64v8/golang/), [`i386`](https://hub.docker.com/r/i386/golang/), [`mips64le`](https://hub.docker.com/r/mips64le/golang/), [`ppc64le`](https://hub.docker.com/r/ppc64le/golang/), [`s390x`](https://hub.docker.com/r/s390x/golang/), [`windows-amd64`](https://hub.docker.com/r/winamd64/golang/) + [`amd64`](https://hub.docker.com/r/amd64/golang/), [`arm32v6`](https://hub.docker.com/r/arm32v6/golang/), [`arm32v7`](https://hub.docker.com/r/arm32v7/golang/), [`arm64v8`](https://hub.docker.com/r/arm64v8/golang/), [`i386`](https://hub.docker.com/r/i386/golang/), [`mips64le`](https://hub.docker.com/r/mips64le/golang/), [`ppc64le`](https://hub.docker.com/r/ppc64le/golang/), [`riscv64`](https://hub.docker.com/r/riscv64/golang/), [`s390x`](https://hub.docker.com/r/s390x/golang/), [`windows-amd64`](https://hub.docker.com/r/winamd64/golang/) - **Published image artifact details**: [repo-info repo's `repos/golang/` directory](https://github.com/docker-library/repo-info/blob/master/repos/golang) ([history](https://github.com/docker-library/repo-info/commits/master/repos/golang)) @@ -104,13 +165,13 @@ Go (a.k.a., Golang) is a programming language first developed at Google. It is a The most straightforward way to use this image is to use a Go container as both the build and runtime environment. In your `Dockerfile`, writing something along the lines of the following will compile and run your project (assuming it uses `go.mod` for dependency management): ```dockerfile -FROM golang:1.21 +FROM golang:1.24 WORKDIR /usr/src/app # pre-copy/cache go.mod for pre-downloading dependencies and only redownloading them in subsequent builds if they change COPY go.mod go.sum ./ -RUN go mod download && go mod verify +RUN go mod download COPY . . RUN go build -v -o /usr/local/bin/app ./... @@ -130,13 +191,13 @@ $ docker run -it --rm --name my-running-app my-golang-app There may be occasions where it is not appropriate to run your app inside a container. To compile, but not run your app inside the Docker instance, you can write something like: ```console -$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.21 go build -v +$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.24 go build -v ``` This will add your current directory as a volume to the container, set the working directory to the volume, and run the command `go build` which will tell go to compile the project in the working directory and output the executable to `myapp`. Alternatively, if you have a `Makefile`, you can run the `make` command inside your container. ```console -$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.21 make +$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.24 make ``` ## Cross-compile your app inside the Docker container @@ -144,13 +205,13 @@ $ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.21 make If you need to compile your application for a platform other than `linux/amd64` (such as `windows/386`): ```console -$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 golang:1.21 go build -v +$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 golang:1.24 go build -v ``` Alternatively, you can build for multiple platforms at once: ```console -$ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.21 bash +$ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.24 bash $ for GOOS in darwin linux; do > for GOARCH in 386 amd64; do > export GOOS GOARCH @@ -159,6 +220,10 @@ $ for GOOS in darwin linux; do > done ``` +## Git LFS + +If downloading your dependencies results in an error like "checksum mismatch", you should check whether they are using [Git LFS](https://git-lfs.com/) (and thus need it installed for downloading them and calculating correct `go.sum` values). + # Image Variants The `golang` images come in many flavors, each designed for a specific use case. @@ -188,6 +253,12 @@ For information about how to get Docker running on Windows, please see the relev - [Windows Server Quick Start](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_server) - [Windows 10 Quick Start](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_10) +## `golang:-tip` + +The term "tip" in the Go community is used to refer to the latest development branch ([a leftover convention from previously using `hg` for version control](https://github.com/golang/build/blob/6383021611af0e07cbf0a60222e066662557c796/cmd/coordinator/internal/legacydash/build.go#L313-L314)). + +These tags contains builds of Go's latest development branch, and they are updated on a ~weekly cadence. + # License View [license information](http://golang.org/LICENSE) for the software contained in this image. diff --git a/golang/content.md b/golang/content.md index 5cf342d28bad..7797caf5a0f7 100644 --- a/golang/content.md +++ b/golang/content.md @@ -15,13 +15,13 @@ Go (a.k.a., Golang) is a programming language first developed at Google. It is a The most straightforward way to use this image is to use a Go container as both the build and runtime environment. In your `Dockerfile`, writing something along the lines of the following will compile and run your project (assuming it uses `go.mod` for dependency management): ```dockerfile -FROM %%IMAGE%%:1.21 +FROM %%IMAGE%%:1.24 WORKDIR /usr/src/app # pre-copy/cache go.mod for pre-downloading dependencies and only redownloading them in subsequent builds if they change COPY go.mod go.sum ./ -RUN go mod download && go mod verify +RUN go mod download COPY . . RUN go build -v -o /usr/local/bin/app ./... @@ -41,13 +41,13 @@ $ docker run -it --rm --name my-running-app my-golang-app There may be occasions where it is not appropriate to run your app inside a container. To compile, but not run your app inside the Docker instance, you can write something like: ```console -$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:1.21 go build -v +$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:1.24 go build -v ``` This will add your current directory as a volume to the container, set the working directory to the volume, and run the command `go build` which will tell go to compile the project in the working directory and output the executable to `myapp`. Alternatively, if you have a `Makefile`, you can run the `make` command inside your container. ```console -$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:1.21 make +$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:1.24 make ``` ## Cross-compile your app inside the Docker container @@ -55,13 +55,13 @@ $ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:1.21 make If you need to compile your application for a platform other than `linux/amd64` (such as `windows/386`): ```console -$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 %%IMAGE%%:1.21 go build -v +$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 %%IMAGE%%:1.24 go build -v ``` Alternatively, you can build for multiple platforms at once: ```console -$ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:1.21 bash +$ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:1.24 bash $ for GOOS in darwin linux; do > for GOARCH in 386 amd64; do > export GOOS GOARCH @@ -69,3 +69,7 @@ $ for GOOS in darwin linux; do > done > done ``` + +## Git LFS + +If downloading your dependencies results in an error like "checksum mismatch", you should check whether they are using [Git LFS](https://git-lfs.com/) (and thus need it installed for downloading them and calculating correct `go.sum` values). diff --git a/golang/metadata.json b/golang/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/golang/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/golang/variant-tip.md b/golang/variant-tip.md new file mode 100644 index 000000000000..7a06aa72b1ce --- /dev/null +++ b/golang/variant-tip.md @@ -0,0 +1,5 @@ +## `%%IMAGE%%:-tip` + +The term "tip" in the Go community is used to refer to the latest development branch ([a leftover convention from previously using `hg` for version control](https://github.com/golang/build/blob/6383021611af0e07cbf0a60222e066662557c796/cmd/coordinator/internal/legacydash/build.go#L313-L314)). + +These tags contains builds of Go's latest development branch, and they are updated on a ~weekly cadence. diff --git a/gradle/README.md b/gradle/README.md index 752c1d34dc5c..b700b97980a1 100644 --- a/gradle/README.md +++ b/gradle/README.md @@ -24,34 +24,107 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.4.0-jdk8`, `8.4-jdk8`, `8-jdk8`, `jdk8`, `8.4.0-jdk8-jammy`, `8.4-jdk8-jammy`, `8-jdk8-jammy`, `jdk8-jammy`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk8/Dockerfile) -- [`8.4.0-jdk8-focal`, `8.4-jdk8-focal`, `8-jdk8-focal`, `jdk8-focal`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk8-focal/Dockerfile) -- [`8.4.0-jdk11`, `8.4-jdk11`, `8-jdk11`, `jdk11`, `8.4.0-jdk11-jammy`, `8.4-jdk11-jammy`, `8-jdk11-jammy`, `jdk11-jammy`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk11/Dockerfile) -- [`8.4.0-jdk11-focal`, `8.4-jdk11-focal`, `8-jdk11-focal`, `jdk11-focal`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk11-focal/Dockerfile) -- [`8.4.0-jdk11-alpine`, `8.4-jdk11-alpine`, `8-jdk11-alpine`, `jdk11-alpine`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk11-alpine/Dockerfile) -- [`8.4.0-jdk17`, `8.4-jdk17`, `8-jdk17`, `jdk17`, `8.4.0-jdk`, `8.4-jdk`, `8-jdk`, `jdk`, `8.4.0`, `8.4`, `8`, `latest`, `8.4.0-jdk17-jammy`, `8.4-jdk17-jammy`, `8-jdk17-jammy`, `jdk17-jammy`, `8.4.0-jdk-jammy`, `8.4-jdk-jammy`, `8-jdk-jammy`, `jdk-jammy`, `8.4.0-jammy`, `8.4-jammy`, `8-jammy`, `jammy`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk17/Dockerfile) -- [`8.4.0-jdk17-focal`, `8.4-jdk17-focal`, `8-jdk17-focal`, `jdk17-focal`, `8.4.0-jdk-focal`, `8.4-jdk-focal`, `8-jdk-focal`, `jdk-focal`, `8.4.0-focal`, `8.4-focal`, `8-focal`, `focal`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk17-focal/Dockerfile) -- [`8.4.0-jdk17-alpine`, `8.4-jdk17-alpine`, `8-jdk17-alpine`, `jdk17-alpine`, `8.4.0-jdk-alpine`, `8.4-jdk-alpine`, `8-jdk-alpine`, `jdk-alpine`, `8.4.0-alpine`, `8.4-alpine`, `8-alpine`, `alpine`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk17-alpine/Dockerfile) -- [`8.4.0-jdk17-graal`, `8.4-jdk17-graal`, `8-jdk17-graal`, `jdk17-graal`, `8.4.0-jdk-graal`, `8.4-jdk-graal`, `8-jdk-graal`, `jdk-graal`, `8.4.0-graal`, `8.4-graal`, `8-graal`, `graal`, `8.4.0-jdk17-graal-jammy`, `8.4-jdk17-graal-jammy`, `8-jdk17-graal-jammy`, `jdk17-graal-jammy`, `8.4.0-jdk-graal-jammy`, `8.4-jdk-graal-jammy`, `8-jdk-graal-jammy`, `jdk-graal-jammy`, `8.4.0-graal-jammy`, `8.4-graal-jammy`, `8-graal-jammy`, `graal-jammy`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk17-graal/Dockerfile) -- [`8.4.0-jdk21`, `8.4-jdk21`, `8-jdk21`, `jdk21`, `8.4.0-jdk21-jammy`, `8.4-jdk21-jammy`, `8-jdk21-jammy`, `jdk21-jammy`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk21/Dockerfile) -- [`8.4.0-jdk21-alpine`, `8.4-jdk21-alpine`, `8-jdk21-alpine`, `jdk21-alpine`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk21-alpine/Dockerfile) -- [`8.4.0-jdk21-graal`, `8.4-jdk21-graal`, `8-jdk21-graal`, `jdk21-graal`, `8.4.0-jdk21-graal-jammy`, `8.4-jdk21-graal-jammy`, `8-jdk21-graal-jammy`, `jdk21-graal-jammy`](https://github.com/keeganwitt/docker-gradle/blob/794a4de1cca03ce9908c478f94487fdaaab10b03/jdk21-graal/Dockerfile) -- [`7.6.3-jdk8`, `7.6-jdk8`, `7-jdk8`, `7.6.3-jdk8-jammy`, `7.6-jdk8-jammy`, `7-jdk8-jammy`](https://github.com/keeganwitt/docker-gradle/blob/318da3df050a9a05ae13c8b1481194c6ee056692/jdk8/Dockerfile) -- [`7.6.3-jdk8-focal`, `7.6-jdk8-focal`, `7-jdk8-focal`](https://github.com/keeganwitt/docker-gradle/blob/318da3df050a9a05ae13c8b1481194c6ee056692/jdk8-focal/Dockerfile) -- [`7.6.3-jdk11`, `7.6-jdk11`, `7-jdk11`, `7.6.3-jdk11-jammy`, `7.6-jdk11-jammy`, `7-jdk11-jammy`](https://github.com/keeganwitt/docker-gradle/blob/318da3df050a9a05ae13c8b1481194c6ee056692/jdk11/Dockerfile) -- [`7.6.3-jdk11-focal`, `7.6-jdk11-focal`, `7-jdk11-focal`](https://github.com/keeganwitt/docker-gradle/blob/318da3df050a9a05ae13c8b1481194c6ee056692/jdk11-focal/Dockerfile) -- [`7.6.3-jdk11-alpine`, `7.6-jdk11-alpine`, `7-jdk11-alpine`](https://github.com/keeganwitt/docker-gradle/blob/318da3df050a9a05ae13c8b1481194c6ee056692/jdk11-alpine/Dockerfile) -- [`7.6.3-jdk17`, `7.6-jdk17`, `7-jdk17`, `7.6.3-jdk`, `7.6-jdk`, `7-jdk`, `7.6.3`, `7.6`, `7`, `7.6.3-jdk17-jammy`, `7.6-jdk17-jammy`, `7-jdk17-jammy`, `7.6.3-jdk-jammy`, `7.6-jdk-jammy`, `7-jdk-jammy`, `7.6.3-jammy`, `7.6-jammy`, `7-jammy`](https://github.com/keeganwitt/docker-gradle/blob/318da3df050a9a05ae13c8b1481194c6ee056692/jdk17/Dockerfile) -- [`7.6.3-jdk17-focal`, `7.6-jdk17-focal`, `7-jdk17-focal`, `7.6.3-jdk-focal`, `7.6-jdk-focal`, `7-jdk-focal`, `7.6.3-focal`, `7.6-focal`, `7-focal`](https://github.com/keeganwitt/docker-gradle/blob/318da3df050a9a05ae13c8b1481194c6ee056692/jdk17-focal/Dockerfile) -- [`7.6.3-jdk17-alpine`, `7.6-jdk17-alpine`, `7-jdk17-alpine`, `7.6.3-jdk-alpine`, `7.6-jdk-alpine`, `7-jdk-alpine`, `7.6.3-alpine`, `7.6-alpine`, `7-alpine`](https://github.com/keeganwitt/docker-gradle/blob/318da3df050a9a05ae13c8b1481194c6ee056692/jdk17-alpine/Dockerfile) -- [`6.9.4-jdk8`, `6.9-jdk8`, `6-jdk8`, `6.9.4-jdk8-jammy`, `6.9-jdk8-jammy`, `6-jdk8-jammy`](https://github.com/keeganwitt/docker-gradle/blob/06672bd7ca729b51ef850b51306882c61a8ca606/jdk8/Dockerfile) -- [`6.9.4-jdk8-focal`, `6.9-jdk8-focal`, `6-jdk8-focal`](https://github.com/keeganwitt/docker-gradle/blob/06672bd7ca729b51ef850b51306882c61a8ca606/jdk8-focal/Dockerfile) -- [`6.9.4-jdk11`, `6.9-jdk11`, `6-jdk11`, `6.9.4-jdk11-jammy`, `6.9-jdk11-jammy`, `6-jdk11-jammy`](https://github.com/keeganwitt/docker-gradle/blob/06672bd7ca729b51ef850b51306882c61a8ca606/jdk11/Dockerfile) -- [`6.9.4-jdk11-focal`, `6.9-jdk11-focal`, `6-jdk11-focal`](https://github.com/keeganwitt/docker-gradle/blob/06672bd7ca729b51ef850b51306882c61a8ca606/jdk11-focal/Dockerfile) -- [`6.9.4-jdk11-alpine`, `6.9-jdk11-alpine`, `6-jdk11-alpine`](https://github.com/keeganwitt/docker-gradle/blob/06672bd7ca729b51ef850b51306882c61a8ca606/jdk11-alpine/Dockerfile) -- [`6.9.4-jdk17`, `6.9-jdk17`, `6-jdk17`, `6.9.4-jdk`, `6.9-jdk`, `6-jdk`, `6.9.4`, `6.9`, `6`, `6.9.4-jdk17-jammy`, `6.9-jdk17-jammy`, `6-jdk17-jammy`, `6.9.4-jdk-jammy`, `6.9-jdk-jammy`, `6-jdk-jammy`, `6.9.4-jammy`, `6.9-jammy`, `6-jammy`](https://github.com/keeganwitt/docker-gradle/blob/06672bd7ca729b51ef850b51306882c61a8ca606/jdk17/Dockerfile) -- [`6.9.4-jdk17-focal`, `6.9-jdk17-focal`, `6-jdk17-focal`, `6.9.4-jdk-focal`, `6.9-jdk-focal`, `6-jdk-focal`, `6.9.4-focal`, `6.9-focal`, `6-focal`](https://github.com/keeganwitt/docker-gradle/blob/06672bd7ca729b51ef850b51306882c61a8ca606/jdk17-focal/Dockerfile) -- [`6.9.4-jdk17-alpine`, `6.9-jdk17-alpine`, `6-jdk17-alpine`, `6.9.4-jdk-alpine`, `6.9-jdk-alpine`, `6-jdk-alpine`, `6.9.4-alpine`, `6.9-alpine`, `6-alpine`](https://github.com/keeganwitt/docker-gradle/blob/06672bd7ca729b51ef850b51306882c61a8ca606/jdk17-alpine/Dockerfile) +- [`8.14.2-jdk21`, `8.14-jdk21`, `8-jdk21`, `jdk21`, `8.14.2-jdk21-noble`, `8.14-jdk21-noble`, `8-jdk21-noble`, `jdk21-noble`, `latest`, `8.14.2-jdk`, `8.14-jdk`, `8-jdk`, `jdk`, `8.14.2`, `8.14`, `8`, `8.14.2-jdk-noble`, `8.14-jdk-noble`, `8-jdk-noble`, `jdk-noble`, `8.14.2-noble`, `8.14-noble`, `8-noble`, `noble`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk21-noble/Dockerfile) + +- [`8.14.2-jdk21-jammy`, `8.14-jdk21-jammy`, `8-jdk21-jammy`, `jdk21-jammy`, `8.14.2-jdk-jammy`, `8.14-jdk-jammy`, `8-jdk-jammy`, `jdk-jammy`, `8.14.2-jammy`, `8.14-jammy`, `8-jammy`, `jammy`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk21-jammy/Dockerfile) + +- [`8.14.2-jdk21-alpine`, `8.14-jdk21-alpine`, `8-jdk21-alpine`, `jdk21-alpine`, `8.14.2-jdk-alpine`, `8.14-jdk-alpine`, `8-jdk-alpine`, `jdk-alpine`, `8.14.2-alpine`, `8.14-alpine`, `8-alpine`, `alpine`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk21-alpine/Dockerfile) + +- [`8.14.2-jdk21-corretto`, `8.14-jdk21-corretto`, `8-jdk21-corretto`, `jdk21-corretto`, `corretto`, `8.14.2-jdk21-corretto-al2023`, `8.14-jdk21-corretto-al2023`, `8-jdk21-corretto-al2023`, `jdk21-corretto-al2023`, `corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk21-corretto/Dockerfile) + +- [`8.14.2-jdk21-ubi`, `8.14-jdk21-ubi`, `8-jdk21-ubi`, `jdk21-ubi`, `ubi`, `8.14.2-jdk21-ubi-minimal`, `8.14-jdk21-ubi-minimal`, `8-jdk21-ubi-minimal`, `jdk21-ubi-minimal`, `ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk21-ubi9/Dockerfile) + +- [`8.14.2-jdk21-graal`, `8.14-jdk21-graal`, `8-jdk21-graal`, `jdk21-graal`, `8.14.2-jdk-graal`, `8.14-jdk-graal`, `8-jdk-graal`, `jdk-graal`, `8.14.2-graal`, `8.14-graal`, `8-graal`, `graal`, `8.14.2-jdk21-graal-noble`, `8.14-jdk21-graal-noble`, `8-jdk21-graal-noble`, `jdk21-graal-noble`, `8.14.2-jdk-graal-noble`, `8.14-jdk-graal-noble`, `8-jdk-graal-noble`, `jdk-graal-noble`, `8.14.2-graal-noble`, `8.14-graal-noble`, `8-graal-noble`, `graal-noble`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk21-noble-graal/Dockerfile) + +- [`8.14.2-jdk21-graal-jammy`, `8.14-jdk21-graal-jammy`, `8-jdk21-graal-jammy`, `jdk21-graal-jammy`, `8.14.2-jdk-graal-jammy`, `8.14-jdk-graal-jammy`, `8-jdk-graal-jammy`, `jdk-graal-jammy`, `8.14.2-graal-jammy`, `8.14-graal-jammy`, `8-graal-jammy`, `graal-jammy`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk21-jammy-graal/Dockerfile) + +- [`8.14.2-jdk17`, `8.14-jdk17`, `8-jdk17`, `jdk17`, `8.14.2-jdk17-noble`, `8.14-jdk17-noble`, `8-jdk17-noble`, `jdk17-noble`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk17-noble/Dockerfile) + +- [`8.14.2-jdk17-jammy`, `8.14-jdk17-jammy`, `8-jdk17-jammy`, `jdk17-jammy`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk17-jammy/Dockerfile) + +- [`8.14.2-jdk17-alpine`, `8.14-jdk17-alpine`, `8-jdk17-alpine`, `jdk17-alpine`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk17-alpine/Dockerfile) + +- [`8.14.2-jdk17-corretto`, `8.14-jdk17-corretto`, `8-jdk17-corretto`, `jdk17-corretto`, `8.14.2-jdk17-corretto-al2023`, `8.14-jdk17-corretto-al2023`, `8-jdk17-corretto-al2023`, `jdk17-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk17-corretto/Dockerfile) + +- [`8.14.2-jdk17-ubi`, `8.14-jdk17-ubi`, `8-jdk17-ubi`, `jdk17-ubi`, `8.14.2-jdk17-ubi-minimal`, `8.14-jdk17-ubi-minimal`, `8-jdk17-ubi-minimal`, `jdk17-ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk17-ubi9/Dockerfile) + +- [`8.14.2-jdk17-graal`, `8.14-jdk17-graal`, `8-jdk17-graal`, `jdk17-graal`, `8.14.2-jdk17-graal-noble`, `8.14-jdk17-graal-noble`, `8-jdk17-graal-noble`, `jdk17-graal-noble`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk17-noble-graal/Dockerfile) + +- [`8.14.2-jdk17-graal-jammy`, `8.14-jdk17-graal-jammy`, `8-jdk17-graal-jammy`, `jdk17-graal-jammy`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk17-jammy-graal/Dockerfile) + +- [`8.14.2-jdk11`, `8.14-jdk11`, `8-jdk11`, `jdk11`, `8.14.2-jdk11-jammy`, `8.14-jdk11-jammy`, `8-jdk11-jammy`, `jdk11-jammy`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk11-jammy/Dockerfile) + +- [`8.14.2-jdk11-alpine`, `8.14-jdk11-alpine`, `8-jdk11-alpine`, `jdk11-alpine`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk11-alpine/Dockerfile) + +- [`8.14.2-jdk11-corretto`, `8.14-jdk11-corretto`, `8-jdk11-corretto`, `jdk11-corretto`, `8.14.2-jdk11-corretto-al2023`, `8.14-jdk11-corretto-al2023`, `8-jdk11-corretto-al2023`, `jdk11-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk11-corretto/Dockerfile) + +- [`8.14.2-jdk11-ubi`, `8.14-jdk11-ubi`, `8-jdk11-ubi`, `jdk11-ubi`, `8.14.2-jdk11-ubi-minimal`, `8.14-jdk11-ubi-minimal`, `8-jdk11-ubi-minimal`, `jdk11-ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk11-ubi9/Dockerfile) + +- [`8.14.2-jdk8`, `8.14-jdk8`, `8-jdk8`, `jdk8`, `8.14.2-jdk8-jammy`, `8.14-jdk8-jammy`, `8-jdk8-jammy`, `jdk8-jammy`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk8-jammy/Dockerfile) + +- [`8.14.2-jdk8-corretto`, `8.14-jdk8-corretto`, `8-jdk8-corretto`, `jdk8-corretto`, `8.14.2-jdk8-corretto-al2023`, `8.14-jdk8-corretto-al2023`, `8-jdk8-corretto-al2023`, `jdk8-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk8-corretto/Dockerfile) + +- [`8.14.2-jdk8-ubi`, `8.14-jdk8-ubi`, `8-jdk8-ubi`, `jdk8-ubi`, `8.14.2-jdk8-ubi-minimal`, `8.14-jdk8-ubi-minimal`, `8-jdk8-ubi-minimal`, `jdk8-ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk8-ubi9/Dockerfile) + +- [`8.14.2-jdk24`, `8.14-jdk24`, `8-jdk24`, `jdk24`, `8.14.2-jdk24-noble`, `8.14-jdk24-noble`, `8-jdk24-noble`, `jdk24-noble`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk24-noble/Dockerfile) + +- [`8.14.2-jdk24-alpine`, `8.14-jdk24-alpine`, `8-jdk24-alpine`, `jdk24-alpine`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk24-alpine/Dockerfile) + +- [`8.14.2-jdk24-corretto`, `8.14-jdk24-corretto`, `8-jdk24-corretto`, `jdk24-corretto`, `8.14.2-jdk24-corretto-al2023`, `8.14-jdk24-corretto-al2023`, `8-jdk24-corretto-al2023`, `jdk24-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk24-corretto/Dockerfile) + +- [`8.14.2-jdk24-ubi`, `8.14-jdk24-ubi`, `8-jdk24-ubi`, `jdk24-ubi`, `8.14.2-jdk24-ubi-minimal`, `8.14-jdk24-ubi-minimal`, `8-jdk24-ubi-minimal`, `jdk24-ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk24-ubi9/Dockerfile) + +- [`8.14.2-jdk24-graal`, `8.14-jdk24-graal`, `8-jdk24-graal`, `jdk24-graal`, `8.14.2-jdk24-graal-noble`, `8.14-jdk24-graal-noble`, `8-jdk24-graal-noble`, `jdk24-graal-noble`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk24-noble-graal/Dockerfile) + +- [`8.14.2-jdk-lts-and-current`, `8.14-jdk-lts-and-current`, `8-jdk-lts-and-current`, `jdk-lts-and-current`, `8.14.2-jdk-lts-and-current-noble`, `8.14-jdk-lts-and-current-noble`, `8-jdk-lts-and-current-noble`, `jdk-lts-and-current-noble`, `8.14.2-jdk-21-and-24`, `8.14-jdk-21-and-24`, `8-jdk-21-and-24`, `jdk-21-and-24`, `8.14.2-jdk-21-and-24-noble`, `8.14-jdk-21-and-24-noble`, `8-jdk-21-and-24-noble`, `jdk-21-and-24-noble`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk-lts-and-current/Dockerfile) + +- [`8.14.2-jdk-lts-and-current-alpine`, `8.14-jdk-lts-and-current-alpine`, `8-jdk-lts-and-current-alpine`, `jdk-lts-and-current-alpine`, `8.14.2-jdk-21-and-24-alpine`, `8.14-jdk-21-and-24-alpine`, `8-jdk-21-and-24-alpine`, `jdk-21-and-24-alpine`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk-lts-and-current-alpine/Dockerfile) + +- [`8.14.2-jdk-lts-and-current-corretto`, `8.14-jdk-lts-and-current-corretto`, `8-jdk-lts-and-current-corretto`, `jdk-lts-and-current-corretto`, `8.14.2-jdk-lts-and-current-corretto-al2023`, `8.14-jdk-lts-and-current-corretto-al2023`, `8-jdk-lts-and-current-corretto-al2023`, `jdk-lts-and-current-corretto-al2023`, `8.14.2-jdk-21-and-24-corretto`, `8.14-jdk-21-and-24-corretto`, `8-jdk-21-and-24-corretto`, `jdk-21-and-24-corretto`, `8.14.2-jdk-21-and-24-corretto-al2023`, `8.14-jdk-21-and-24-corretto-al2023`, `8-jdk-21-and-24-corretto-al2023`, `jdk-21-and-24-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk-lts-and-current-corretto/Dockerfile) + +- [`8.14.2-jdk-lts-and-current-graal`, `8.14-jdk-lts-and-current-graal`, `8-jdk-lts-and-current-graal`, `jdk-lts-and-current-graal`, `8.14.2-jdk-lts-and-current-graal-noble`, `8.14-jdk-lts-and-current-graal-noble`, `8-jdk-lts-and-current-graal-noble`, `jdk-lts-and-current-graal-noble`, `8.14.2-jdk-21-and-24-graal`, `8.14-jdk-21-and-24-graal`, `8-jdk-21-and-24-graal`, `jdk-21-and-24-graal`, `8.14.2-jdk-21-and-24-graal-noble`, `8.14-jdk-21-and-24-graal-noble`, `8-jdk-21-and-24-graal-noble`, `jdk-21-and-24-graal-noble`](https://github.com/keeganwitt/docker-gradle/blob/fbe624190acab50d1aa82bbe6c94d117f77a39c1/jdk-lts-and-current-graal/Dockerfile) + +- [`7.6.5-jdk17`, `7.6-jdk17`, `7-jdk17`, `7.6.5-jdk17-noble`, `7.6-jdk17-noble`, `7-jdk17-noble`, `7.6.5-jdk`, `7.6-jdk`, `7-jdk`, `7.6.5`, `7.6`, `7`, `7.6.5-jdk-noble`, `7.6-jdk-noble`, `7-jdk-noble`, `7.6.5-noble`, `7.6-noble`, `7-noble`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk17-noble/Dockerfile) + +- [`7.6.5-jdk17-jammy`, `7.6-jdk17-jammy`, `7-jdk17-jammy`, `7.6.5-jdk-jammy`, `7.6-jdk-jammy`, `7-jdk-jammy`, `7.6.5-jammy`, `7.6-jammy`, `7-jammy`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk17-jammy/Dockerfile) + +- [`7.6.5-jdk17-alpine`, `7.6-jdk17-alpine`, `7-jdk17-alpine`, `7.6.5-jdk-alpine`, `7.6-jdk-alpine`, `7-jdk-alpine`, `7.6.5-alpine`, `7.6-alpine`, `7-alpine`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk17-alpine/Dockerfile) + +- [`7.6.5-jdk17-corretto`, `7.6-jdk17-corretto`, `7-jdk17-corretto`, `7.6.5-jdk17-corretto-al2023`, `7.6-jdk17-corretto-al2023`, `7-jdk17-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk17-corretto/Dockerfile) + +- [`7.6.5-jdk17-ubi`, `7.6-jdk17-ubi`, `7-jdk17-ubi`, `7.6.5-jdk17-ubi-minimal`, `7.6-jdk17-ubi-minimal`, `7-jdk17-ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk17-ubi9/Dockerfile) + +- [`7.6.5-jdk17-graal`, `7.6-jdk17-graal`, `7-jdk17-graal`, `7.6.5-jdk-graal`, `7.6-jdk-graal`, `7-jdk-graal`, `7.6.5-graal`, `7.6-graal`, `7-graal`, `7.6.5-jdk17-graal-noble`, `7.6-jdk17-graal-noble`, `7-jdk17-graal-noble`, `7.6.5-jdk-graal-noble`, `7.6-jdk-graal-noble`, `7-jdk-graal-noble`, `7.6.5-graal-noble`, `7.6-graal-noble`, `7-graal-noble`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk17-noble-graal/Dockerfile) + +- [`7.6.5-jdk17-graal-jammy`, `7.6-jdk17-graal-jammy`, `7-jdk17-graal-jammy`, `7.6.5-jdk-graal-jammy`, `7.6-jdk-graal-jammy`, `7-jdk-graal-jammy`, `7.6.5-graal-jammy`, `7.6-graal-jammy`, `7-graal-jammy`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk17-jammy-graal/Dockerfile) + +- [`7.6.5-jdk11`, `7.6-jdk11`, `7-jdk11`, `7.6.5-jdk11-jammy`, `7.6-jdk11-jammy`, `7-jdk11-jammy`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk11-jammy/Dockerfile) + +- [`7.6.5-jdk11-alpine`, `7.6-jdk11-alpine`, `7-jdk11-alpine`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk11-alpine/Dockerfile) + +- [`7.6.5-jdk11-corretto`, `7.6-jdk11-corretto`, `7-jdk11-corretto`, `7.6.5-jdk11-corretto-al2023`, `7.6-jdk11-corretto-al2023`, `7-jdk11-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk11-corretto/Dockerfile) + +- [`7.6.5-jdk11-ubi`, `7.6-jdk11-ubi`, `7-jdk11-ubi`, `7.6.5-jdk11-ubi-minimal`, `7.6-jdk11-ubi-minimal`, `7-jdk11-ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk11-ubi9/Dockerfile) + +- [`7.6.5-jdk8`, `7.6-jdk8`, `7-jdk8`, `7.6.5-jdk8-jammy`, `7.6-jdk8-jammy`, `7-jdk8-jammy`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk8-jammy/Dockerfile) + +- [`7.6.5-jdk8-corretto`, `7.6-jdk8-corretto`, `7-jdk8-corretto`, `7.6.5-jdk8-corretto-al2023`, `7.6-jdk8-corretto-al2023`, `7-jdk8-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk8-corretto/Dockerfile) + +- [`7.6.5-jdk8-ubi`, `7.6-jdk8-ubi`, `7-jdk8-ubi`, `7.6.5-jdk8-ubi-minimal`, `7.6-jdk8-ubi-minimal`, `7-jdk8-ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/17989d30c31815509e1002fff3b45cbd1777471b/jdk8-ubi9/Dockerfile) + +- [`6.9.4-jdk11`, `6.9-jdk11`, `6-jdk11`, `6.9.4-jdk11-jammy`, `6.9-jdk11-jammy`, `6-jdk11-jammy`, `6.9.4-jdk`, `6.9-jdk`, `6-jdk`, `6.9.4`, `6.9`, `6`, `6.9.4-jdk-jammy`, `6.9-jdk-jammy`, `6-jdk-jammy`, `6.9.4-jammy`, `6.9-jammy`, `6-jammy`](https://github.com/keeganwitt/docker-gradle/blob/4c95a8c5f6a7e726b47ad3f8068d66c5b552e281/jdk11-jammy/Dockerfile) + +- [`6.9.4-jdk11-alpine`, `6.9-jdk11-alpine`, `6-jdk11-alpine`, `6.9.4-jdk-alpine`, `6.9-jdk-alpine`, `6-jdk-alpine`, `6.9.4-alpine`, `6.9-alpine`, `6-alpine`](https://github.com/keeganwitt/docker-gradle/blob/4c95a8c5f6a7e726b47ad3f8068d66c5b552e281/jdk11-alpine/Dockerfile) + +- [`6.9.4-jdk11-corretto`, `6.9-jdk11-corretto`, `6-jdk11-corretto`, `6.9.4-jdk11-corretto-al2023`, `6.9-jdk11-corretto-al2023`, `6-jdk11-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/4c95a8c5f6a7e726b47ad3f8068d66c5b552e281/jdk11-corretto/Dockerfile) + +- [`6.9.4-jdk11-ubi`, `6.9-jdk11-ubi`, `6-jdk11-ubi`, `6.9.4-jdk11-ubi-minimal`, `6.9-jdk11-ubi-minimal`, `6-jdk11-ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/4c95a8c5f6a7e726b47ad3f8068d66c5b552e281/jdk11-ubi9/Dockerfile) + +- [`6.9.4-jdk8`, `6.9-jdk8`, `6-jdk8`, `6.9.4-jdk8-jammy`, `6.9-jdk8-jammy`, `6-jdk8-jammy`](https://github.com/keeganwitt/docker-gradle/blob/4c95a8c5f6a7e726b47ad3f8068d66c5b552e281/jdk8-jammy/Dockerfile) + +- [`6.9.4-jdk8-corretto`, `6.9-jdk8-corretto`, `6-jdk8-corretto`, `6.9.4-jdk8-corretto-al2023`, `6.9-jdk8-corretto-al2023`, `6-jdk8-corretto-al2023`](https://github.com/keeganwitt/docker-gradle/blob/4c95a8c5f6a7e726b47ad3f8068d66c5b552e281/jdk8-corretto/Dockerfile) + +- [`6.9.4-jdk8-ubi`, `6.9-jdk8-ubi`, `6-jdk8-ubi`, `6.9.4-jdk8-ubi-minimal`, `6.9-jdk8-ubi-minimal`, `6-jdk8-ubi-minimal`](https://github.com/keeganwitt/docker-gradle/blob/4c95a8c5f6a7e726b47ad3f8068d66c5b552e281/jdk8-ubi9/Dockerfile) # Quick reference (cont.) @@ -59,7 +132,7 @@ WARNING: [https://github.com/keeganwitt/docker-gradle/issues](https://github.com/keeganwitt/docker-gradle/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/gradle/), [`arm32v7`](https://hub.docker.com/r/arm32v7/gradle/), [`arm64v8`](https://hub.docker.com/r/arm64v8/gradle/), [`ppc64le`](https://hub.docker.com/r/ppc64le/gradle/), [`s390x`](https://hub.docker.com/r/s390x/gradle/) + [`amd64`](https://hub.docker.com/r/amd64/gradle/), [`arm32v7`](https://hub.docker.com/r/arm32v7/gradle/), [`arm64v8`](https://hub.docker.com/r/arm64v8/gradle/), [`ppc64le`](https://hub.docker.com/r/ppc64le/gradle/), [`riscv64`](https://hub.docker.com/r/riscv64/gradle/), [`s390x`](https://hub.docker.com/r/s390x/gradle/) - **Published image artifact details**: [repo-info repo's `repos/gradle/` directory](https://github.com/docker-library/repo-info/blob/master/repos/gradle) ([history](https://github.com/docker-library/repo-info/commits/master/repos/gradle)) @@ -102,7 +175,7 @@ The `gradle` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like focal or jammy 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. +Some of these tags may have names like 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. ## `gradle:-alpine` diff --git a/gradle/metadata.json b/gradle/metadata.json new file mode 100644 index 000000000000..67e782480585 --- /dev/null +++ b/gradle/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "developer-tools" + ] + } +} diff --git a/groovy/README.md b/groovy/README.md index b8ee870ff90d..e520b232bde9 100644 --- a/groovy/README.md +++ b/groovy/README.md @@ -24,13 +24,19 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`4.0.15-jdk8`, `4.0-jdk8`, `jdk8`, `4.0.15-jdk8-jammy`, `4.0-jdk8-jammy`, `jdk8-jammy`](https://github.com/groovy/docker-groovy/blob/0ea910f18590ad895816749d064dc14c77c435e3/jdk8/Dockerfile) -- [`4.0.15-jdk11`, `4.0-jdk11`, `jdk11`, `4.0.15-jdk11-jammy`, `4.0-jdk11-jammy`, `jdk11-jammy`](https://github.com/groovy/docker-groovy/blob/0ea910f18590ad895816749d064dc14c77c435e3/jdk11/Dockerfile) -- [`4.0.15-jdk11-alpine`, `4.0-jdk11-alpine`, `jdk11-alpine`](https://github.com/groovy/docker-groovy/blob/0ea910f18590ad895816749d064dc14c77c435e3/jdk11-alpine/Dockerfile) -- [`4.0.15-jdk17`, `4.0-jdk17`, `jdk17`, `4.0.15-jdk`, `4.0-jdk`, `4.0.15`, `4.0`, `4`, `jdk`, `latest`, `4.0.15-jdk17-jammy`, `4.0-jdk17-jammy`, `jdk17-jammy`, `4.0.15-jdk-jammy`, `4.0-jdk-jammy`, `4.0.15-jammy`, `4.0-jammy`, `4-jammy`, `jdk-jammy`, `jammy`](https://github.com/groovy/docker-groovy/blob/0ea910f18590ad895816749d064dc14c77c435e3/jdk17/Dockerfile) -- [`4.0.15-jdk17-alpine`, `4.0-jdk17-alpine`, `jdk17-alpine`, `4.0.15-jdk-alpine`, `4.0-jdk-alpine`, `4.0.15-alpine`, `4.0-alpine`, `4-alpine`, `jdk-alpine`, `alpine`](https://github.com/groovy/docker-groovy/blob/0ea910f18590ad895816749d064dc14c77c435e3/jdk17-alpine/Dockerfile) -- [`4.0.15-jdk21`, `4.0-jdk21`, `jdk21`, `4.0.15-jdk21-jammy`, `4.0-jdk21-jammy`, `jdk21-jammy`](https://github.com/groovy/docker-groovy/blob/0ea910f18590ad895816749d064dc14c77c435e3/jdk21/Dockerfile) -- [`4.0.15-jdk21-alpine`, `4.0-jdk21-alpine`, `jdk21-alpine`](https://github.com/groovy/docker-groovy/blob/0ea910f18590ad895816749d064dc14c77c435e3/jdk21-alpine/Dockerfile) +- [`4.0.25-jdk8`, `4.0-jdk8`, `jdk8`, `4.0.25-jdk8-jammy`, `4.0-jdk8-jammy`, `jdk8-jammy`](https://github.com/groovy/docker-groovy/blob/0bf66b24590f71de06ad45107716beacd4a07c06/jdk8/Dockerfile) + +- [`4.0.25-jdk11`, `4.0-jdk11`, `jdk11`, `4.0.25-jdk11-jammy`, `4.0-jdk11-jammy`, `jdk11-jammy`](https://github.com/groovy/docker-groovy/blob/0bf66b24590f71de06ad45107716beacd4a07c06/jdk11/Dockerfile) + +- [`4.0.25-jdk11-alpine`, `4.0-jdk11-alpine`, `jdk11-alpine`](https://github.com/groovy/docker-groovy/blob/0bf66b24590f71de06ad45107716beacd4a07c06/jdk11-alpine/Dockerfile) + +- [`4.0.25-jdk17`, `4.0-jdk17`, `jdk17`, `4.0.25-jdk`, `4.0-jdk`, `4.0.25`, `4.0`, `4`, `jdk`, `latest`, `4.0.25-jdk17-jammy`, `4.0-jdk17-jammy`, `jdk17-jammy`, `4.0.25-jdk-jammy`, `4.0-jdk-jammy`, `4.0.25-jammy`, `4.0-jammy`, `4-jammy`, `jdk-jammy`, `jammy`](https://github.com/groovy/docker-groovy/blob/0bf66b24590f71de06ad45107716beacd4a07c06/jdk17/Dockerfile) + +- [`4.0.25-jdk17-alpine`, `4.0-jdk17-alpine`, `jdk17-alpine`, `4.0.25-jdk-alpine`, `4.0-jdk-alpine`, `4.0.25-alpine`, `4.0-alpine`, `4-alpine`, `jdk-alpine`, `alpine`](https://github.com/groovy/docker-groovy/blob/0bf66b24590f71de06ad45107716beacd4a07c06/jdk17-alpine/Dockerfile) + +- [`4.0.25-jdk21`, `4.0-jdk21`, `jdk21`, `4.0.25-jdk21-jammy`, `4.0-jdk21-jammy`, `jdk21-jammy`](https://github.com/groovy/docker-groovy/blob/0bf66b24590f71de06ad45107716beacd4a07c06/jdk21/Dockerfile) + +- [`4.0.25-jdk21-alpine`, `4.0-jdk21-alpine`, `jdk21-alpine`](https://github.com/groovy/docker-groovy/blob/0bf66b24590f71de06ad45107716beacd4a07c06/jdk21-alpine/Dockerfile) # Quick reference (cont.) diff --git a/groovy/metadata.json b/groovy/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/groovy/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/haproxy/README.md b/haproxy/README.md index a4bb9e808955..c790b7124de1 100644 --- a/haproxy/README.md +++ b/haproxy/README.md @@ -24,20 +24,33 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`2.9-dev9`, `2.9-dev`, `2.9-dev9-bullseye`, `2.9-dev-bullseye`](https://github.com/docker-library/haproxy/blob/a86b78650d7054ebd03deb668c299c8cf5e14f3b/2.9/Dockerfile) -- [`2.9-dev9-alpine`, `2.9-dev-alpine`, `2.9-dev9-alpine3.18`, `2.9-dev-alpine3.18`](https://github.com/docker-library/haproxy/blob/a86b78650d7054ebd03deb668c299c8cf5e14f3b/2.9/alpine/Dockerfile) -- [`2.8.3`, `2.8`, `lts`, `latest`, `2.8.3-bullseye`, `2.8-bullseye`, `lts-bullseye`, `bullseye`](https://github.com/docker-library/haproxy/blob/97bab51de2c27f86ce61bf5ef3f605997a7b98a6/2.8/Dockerfile) -- [`2.8.3-alpine`, `2.8-alpine`, `lts-alpine`, `alpine`, `2.8.3-alpine3.18`, `2.8-alpine3.18`, `lts-alpine3.18`, `alpine3.18`](https://github.com/docker-library/haproxy/blob/97bab51de2c27f86ce61bf5ef3f605997a7b98a6/2.8/alpine/Dockerfile) -- [`2.7.10`, `2.7`, `2.7.10-bullseye`, `2.7-bullseye`](https://github.com/docker-library/haproxy/blob/6ac34139426d79e07ec76ff9a8b9948dc85e34b3/2.7/Dockerfile) -- [`2.7.10-alpine`, `2.7-alpine`, `2.7.10-alpine3.18`, `2.7-alpine3.18`](https://github.com/docker-library/haproxy/blob/6ac34139426d79e07ec76ff9a8b9948dc85e34b3/2.7/alpine/Dockerfile) -- [`2.6.15`, `2.6`, `2.6.15-bullseye`, `2.6-bullseye`](https://github.com/docker-library/haproxy/blob/fc50ce81390257a9702f3ea74237a73c658a1789/2.6/Dockerfile) -- [`2.6.15-alpine`, `2.6-alpine`, `2.6.15-alpine3.18`, `2.6-alpine3.18`](https://github.com/docker-library/haproxy/blob/fc50ce81390257a9702f3ea74237a73c658a1789/2.6/alpine/Dockerfile) -- [`2.4.24`, `2.4`, `2.4.24-bullseye`, `2.4-bullseye`](https://github.com/docker-library/haproxy/blob/4c041fe042121e9f30046440f12cf0d2747a5061/2.4/Dockerfile) -- [`2.4.24-alpine`, `2.4-alpine`, `2.4.24-alpine3.18`, `2.4-alpine3.18`](https://github.com/docker-library/haproxy/blob/4c041fe042121e9f30046440f12cf0d2747a5061/2.4/alpine/Dockerfile) -- [`2.2.31`, `2.2`, `2.2.31-bullseye`, `2.2-bullseye`](https://github.com/docker-library/haproxy/blob/ad34487167b0bb727cb56000f26d8ea37449c590/2.2/Dockerfile) -- [`2.2.31-alpine`, `2.2-alpine`, `2.2.31-alpine3.18`, `2.2-alpine3.18`](https://github.com/docker-library/haproxy/blob/ad34487167b0bb727cb56000f26d8ea37449c590/2.2/alpine/Dockerfile) -- [`2.0.33`, `2.0`, `2.0.33-buster`, `2.0-buster`](https://github.com/docker-library/haproxy/blob/9c85db58f62beefbcbc4fabc5697ddaeb9ff3ff2/2.0/Dockerfile) -- [`2.0.33-alpine`, `2.0-alpine`, `2.0.33-alpine3.16`, `2.0-alpine3.16`](https://github.com/docker-library/haproxy/blob/9c85db58f62beefbcbc4fabc5697ddaeb9ff3ff2/2.0/alpine/Dockerfile) +- [`3.3-dev1`, `3.3-dev`, `3.3-dev1-bookworm`, `3.3-dev-bookworm`](https://github.com/docker-library/haproxy/blob/44e407b80e8a05deb563724d1118d9efebf79e06/3.3/Dockerfile) + +- [`3.3-dev1-alpine`, `3.3-dev-alpine`, `3.3-dev1-alpine3.22`, `3.3-dev-alpine3.22`](https://github.com/docker-library/haproxy/blob/44e407b80e8a05deb563724d1118d9efebf79e06/3.3/alpine/Dockerfile) + +- [`3.2.1`, `3.2`, `latest`, `lts`, `3.2.1-bookworm`, `3.2-bookworm`, `bookworm`, `lts-bookworm`](https://github.com/docker-library/haproxy/blob/e57bdf9982a76d5391e3f40eec41ae0c6c477ae0/3.2/Dockerfile) + +- [`3.2.1-alpine`, `3.2-alpine`, `alpine`, `lts-alpine`, `3.2.1-alpine3.22`, `3.2-alpine3.22`, `alpine3.22`, `lts-alpine3.22`](https://github.com/docker-library/haproxy/blob/e57bdf9982a76d5391e3f40eec41ae0c6c477ae0/3.2/alpine/Dockerfile) + +- [`3.1.8`, `3.1`, `3.1.8-bookworm`, `3.1-bookworm`](https://github.com/docker-library/haproxy/blob/d9460179b64eac94bd181a488a74d8e6df7bdbf5/3.1/Dockerfile) + +- [`3.1.8-alpine`, `3.1-alpine`, `3.1.8-alpine3.22`, `3.1-alpine3.22`](https://github.com/docker-library/haproxy/blob/d9460179b64eac94bd181a488a74d8e6df7bdbf5/3.1/alpine/Dockerfile) + +- [`3.0.11`, `3.0`, `3.0.11-bookworm`, `3.0-bookworm`](https://github.com/docker-library/haproxy/blob/6fa540dd7d9d82634605e727a8e1c726a23d8b0d/3.0/Dockerfile) + +- [`3.0.11-alpine`, `3.0-alpine`, `3.0.11-alpine3.22`, `3.0-alpine3.22`](https://github.com/docker-library/haproxy/blob/6fa540dd7d9d82634605e727a8e1c726a23d8b0d/3.0/alpine/Dockerfile) + +- [`2.8.15`, `2.8`, `2.8.15-bookworm`, `2.8-bookworm`](https://github.com/docker-library/haproxy/blob/c153740fe581f5c43c6c5571acd00055e49e478d/2.8/Dockerfile) + +- [`2.8.15-alpine`, `2.8-alpine`, `2.8.15-alpine3.22`, `2.8-alpine3.22`](https://github.com/docker-library/haproxy/blob/3117d2496500d354bb79eff90b6ba247fb456276/2.8/alpine/Dockerfile) + +- [`2.6.22`, `2.6`, `2.6.22-bookworm`, `2.6-bookworm`](https://github.com/docker-library/haproxy/blob/c153740fe581f5c43c6c5571acd00055e49e478d/2.6/Dockerfile) + +- [`2.6.22-alpine`, `2.6-alpine`, `2.6.22-alpine3.22`, `2.6-alpine3.22`](https://github.com/docker-library/haproxy/blob/3117d2496500d354bb79eff90b6ba247fb456276/2.6/alpine/Dockerfile) + +- [`2.4.29`, `2.4`, `2.4.29-bookworm`, `2.4-bookworm`](https://github.com/docker-library/haproxy/blob/c153740fe581f5c43c6c5571acd00055e49e478d/2.4/Dockerfile) + +- [`2.4.29-alpine`, `2.4-alpine`, `2.4.29-alpine3.22`, `2.4-alpine3.22`](https://github.com/docker-library/haproxy/blob/3117d2496500d354bb79eff90b6ba247fb456276/2.4/alpine/Dockerfile) # Quick reference (cont.) @@ -45,7 +58,7 @@ WARNING: [https://github.com/docker-library/haproxy/issues](https://github.com/docker-library/haproxy/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/haproxy/), [`arm32v5`](https://hub.docker.com/r/arm32v5/haproxy/), [`arm32v6`](https://hub.docker.com/r/arm32v6/haproxy/), [`arm32v7`](https://hub.docker.com/r/arm32v7/haproxy/), [`arm64v8`](https://hub.docker.com/r/arm64v8/haproxy/), [`i386`](https://hub.docker.com/r/i386/haproxy/), [`mips64le`](https://hub.docker.com/r/mips64le/haproxy/), [`ppc64le`](https://hub.docker.com/r/ppc64le/haproxy/), [`s390x`](https://hub.docker.com/r/s390x/haproxy/) + [`amd64`](https://hub.docker.com/r/amd64/haproxy/), [`arm32v5`](https://hub.docker.com/r/arm32v5/haproxy/), [`arm32v6`](https://hub.docker.com/r/arm32v6/haproxy/), [`arm32v7`](https://hub.docker.com/r/arm32v7/haproxy/), [`arm64v8`](https://hub.docker.com/r/arm64v8/haproxy/), [`i386`](https://hub.docker.com/r/i386/haproxy/), [`mips64le`](https://hub.docker.com/r/mips64le/haproxy/), [`ppc64le`](https://hub.docker.com/r/ppc64le/haproxy/), [`riscv64`](https://hub.docker.com/r/riscv64/haproxy/), [`s390x`](https://hub.docker.com/r/s390x/haproxy/) - **Published image artifact details**: [repo-info repo's `repos/haproxy/` directory](https://github.com/docker-library/repo-info/blob/master/repos/haproxy) ([history](https://github.com/docker-library/repo-info/commits/master/repos/haproxy)) @@ -129,7 +142,7 @@ The `haproxy` images come in many flavors, each designed for a specific use case 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. -Some of these tags may have names like bullseye or buster 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. +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. ## `haproxy:-alpine` diff --git a/haproxy/metadata.json b/haproxy/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/haproxy/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/haskell/README.md b/haskell/README.md index 96fe9f5952ca..7ac23e9d7dd8 100644 --- a/haskell/README.md +++ b/haskell/README.md @@ -24,16 +24,21 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`9.8.1-buster`, `9.8-buster`, `9-buster`, `buster`, `9.8.1`, `9.8`, `9`, `latest`](https://github.com/haskell/docker-haskell/blob/30f9d37242fd2ab6a8cf23e546a26b56a0d2636c/9.8/buster/Dockerfile) -- [`9.8.1-slim-buster`, `9.8-slim-buster`, `9-slim-buster`, `slim-buster`, `9.8.1-slim`, `9.8-slim`, `9-slim`, `slim`](https://github.com/haskell/docker-haskell/blob/30f9d37242fd2ab6a8cf23e546a26b56a0d2636c/9.8/slim-buster/Dockerfile) -- [`9.6.3-buster`, `9.6-buster`, `9.6.3`, `9.6`](https://github.com/haskell/docker-haskell/blob/9bf57e9b736ce1d32fbccbc30f88a48c9e221225/9.6/buster/Dockerfile) -- [`9.6.3-slim-buster`, `9.6-slim-buster`, `9.6.3-slim`, `9.6-slim`](https://github.com/haskell/docker-haskell/blob/9bf57e9b736ce1d32fbccbc30f88a48c9e221225/9.6/slim-buster/Dockerfile) -- [`9.4.8-buster`, `9.4-buster`, `9.4.8`, `9.4`](https://github.com/haskell/docker-haskell/blob/feaa69933c38c47f92e58aa6e7346c8865c1a9f3/9.4/buster/Dockerfile) -- [`9.4.8-slim-buster`, `9.4-slim-buster`, `9.4.8-slim`, `9.4-slim`](https://github.com/haskell/docker-haskell/blob/feaa69933c38c47f92e58aa6e7346c8865c1a9f3/9.4/slim-buster/Dockerfile) -- [`9.2.8-buster`, `9.2-buster`, `9.2.8`, `9.2`](https://github.com/haskell/docker-haskell/blob/13262afb82e457645a9b9f3f3eadb8e5acd4b5c1/9.2/buster/Dockerfile) -- [`9.2.8-slim-buster`, `9.2-slim-buster`, `9.2.8-slim`, `9.2-slim`](https://github.com/haskell/docker-haskell/blob/13262afb82e457645a9b9f3f3eadb8e5acd4b5c1/9.2/slim-buster/Dockerfile) -- [`9.0.2-buster`, `9.0-buster`, `9.0.2`, `9.0`](https://github.com/haskell/docker-haskell/blob/13262afb82e457645a9b9f3f3eadb8e5acd4b5c1/9.0/buster/Dockerfile) -- [`9.0.2-slim-buster`, `9.0-slim-buster`, `9.0.2-slim`, `9.0-slim`](https://github.com/haskell/docker-haskell/blob/13262afb82e457645a9b9f3f3eadb8e5acd4b5c1/9.0/slim-buster/Dockerfile) +- [`9.12.2-bookworm`, `9.12-bookworm`, `9-bookworm`, `bookworm`, `9.12.2`, `9.12`, `9`, `latest`](https://github.com/haskell/docker-haskell/blob/9f6ddaa037edbbf26bf162c0285264aa3ffda638/9.12/bookworm/Dockerfile) + +- [`9.12.2-slim-bookworm`, `9.12-slim-bookworm`, `9-slim-bookworm`, `slim-bookworm`, `9-slim`, `slim`](https://github.com/haskell/docker-haskell/blob/9f6ddaa037edbbf26bf162c0285264aa3ffda638/9.12/slim-bookworm/Dockerfile) + +- [`9.10.1-bullseye`, `9.10-bullseye`, `9-bullseye`, `bullseye`, `9.10.1`, `9.10`](https://github.com/haskell/docker-haskell/blob/9f6ddaa037edbbf26bf162c0285264aa3ffda638/9.10/bullseye/Dockerfile) + +- [`9.10.1-slim-bullseye`, `9.10-slim-bullseye`, `9-slim-bullseye`, `slim-bullseye`](https://github.com/haskell/docker-haskell/blob/9f6ddaa037edbbf26bf162c0285264aa3ffda638/9.10/slim-bullseye/Dockerfile) + +- [`9.8.4-bullseye`, `9.8-bullseye`, `9.8.4`, `9.8`](https://github.com/haskell/docker-haskell/blob/9f6ddaa037edbbf26bf162c0285264aa3ffda638/9.8/bullseye/Dockerfile) + +- [`9.8.4-slim-bullseye`, `9.8-slim-bullseye`, `9.8.4-slim`, `9.8-slim`](https://github.com/haskell/docker-haskell/blob/9f6ddaa037edbbf26bf162c0285264aa3ffda638/9.8/slim-bullseye/Dockerfile) + +- [`9.6.7-bullseye`, `9.6-bullseye`, `9.6.7`, `9.6`](https://github.com/haskell/docker-haskell/blob/9f6ddaa037edbbf26bf162c0285264aa3ffda638/9.6/bullseye/Dockerfile) + +- [`9.6.7-slim-bullseye`, `9.6-slim-bullseye`, `9.6.7-slim`, `9.6-slim`](https://github.com/haskell/docker-haskell/blob/9f6ddaa037edbbf26bf162c0285264aa3ffda638/9.6/slim-bullseye/Dockerfile) # Quick reference (cont.) @@ -170,9 +175,7 @@ The `haskell` images come in many flavors, each designed for a specific use case 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. -Some of these tags may have names like buster 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. - -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. +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. ## `haskell:-slim` diff --git a/haskell/metadata.json b/haskell/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/haskell/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/haxe/README.md b/haxe/README.md index 77cde4be3843..ec0add28be85 100644 --- a/haxe/README.md +++ b/haxe/README.md @@ -28,104 +28,79 @@ WARNING: ## Simple Tags -- [`4.3.2-bullseye`, `4.3-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/bullseye/Dockerfile) -- [`4.3.2-buster`, `4.3-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/buster/Dockerfile) -- [`4.3.2-windowsservercore-ltsc2022`, `4.3-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/windowsservercore-ltsc2022/Dockerfile) -- [`4.3.2-windowsservercore-1809`, `4.3-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/windowsservercore-1809/Dockerfile) -- [`4.3.2-alpine3.18`, `4.3-alpine3.18`, `4.3.2-alpine`, `4.3-alpine`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/alpine3.18/Dockerfile) -- [`4.3.2-alpine3.17`, `4.3-alpine3.17`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/alpine3.17/Dockerfile) -- [`4.3.2-alpine3.16`, `4.3-alpine3.16`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/alpine3.16/Dockerfile) -- [`4.3.2-alpine3.15`, `4.3-alpine3.15`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/alpine3.15/Dockerfile) -- [`4.2.5-bullseye`, `4.2-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/4.2/bullseye/Dockerfile) -- [`4.2.5-buster`, `4.2-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/4.2/buster/Dockerfile) +- [`4.3.6-bookworm`, `4.3-bookworm`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.3/bookworm/Dockerfile) + +- [`4.3.6-bullseye`, `4.3-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.3/bullseye/Dockerfile) + +- [`4.3.6-windowsservercore-ltsc2022`, `4.3-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/03cdd3f2df8800aff8f28313181564ed9443dedd/4.3/windowsservercore-ltsc2022/Dockerfile) + +- [`4.3.6-alpine3.20`, `4.3-alpine3.20`, `4.3.6-alpine`, `4.3-alpine`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.3/alpine3.20/Dockerfile) + +- [`4.3.6-alpine3.19`, `4.3-alpine3.19`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.3/alpine3.19/Dockerfile) + +- [`4.2.5-bookworm`, `4.2-bookworm`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.2/bookworm/Dockerfile) + +- [`4.2.5-bullseye`, `4.2-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.2/bullseye/Dockerfile) + - [`4.2.5-windowsservercore-ltsc2022`, `4.2-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.2/windowsservercore-ltsc2022/Dockerfile) -- [`4.2.5-windowsservercore-1809`, `4.2-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.2/windowsservercore-1809/Dockerfile) -- [`4.2.5-alpine3.18`, `4.2-alpine3.18`, `4.2.5-alpine`, `4.2-alpine`](https://github.com/HaxeFoundation/docker-library-haxe/blob/b7003bc3280e69dc057ef0e6e8dfb8fd44ce4741/4.2/alpine3.18/Dockerfile) -- [`4.2.5-alpine3.17`, `4.2-alpine3.17`](https://github.com/HaxeFoundation/docker-library-haxe/blob/40bf9156af6f198cd7a57dbfd452e24dc1ceb94e/4.2/alpine3.17/Dockerfile) -- [`4.2.5-alpine3.16`, `4.2-alpine3.16`](https://github.com/HaxeFoundation/docker-library-haxe/blob/5f520ca3ba5942ab581369bab2cbda2b8c4ab992/4.2/alpine3.16/Dockerfile) -- [`4.2.5-alpine3.15`, `4.2-alpine3.15`](https://github.com/HaxeFoundation/docker-library-haxe/blob/83789c10dc601064a234fd559206d1ec252228d7/4.2/alpine3.15/Dockerfile) -- [`4.1.5-bullseye`, `4.1-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/4.1/bullseye/Dockerfile) -- [`4.1.5-buster`, `4.1-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/4.1/buster/Dockerfile) + +- [`4.2.5-alpine3.20`, `4.2-alpine3.20`, `4.2.5-alpine`, `4.2-alpine`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.2/alpine3.20/Dockerfile) + +- [`4.2.5-alpine3.19`, `4.2-alpine3.19`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.2/alpine3.19/Dockerfile) + +- [`4.1.5-bullseye`, `4.1-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/5b15afa744e6374bd547252dbc702ebe9aab4ddb/4.1/bullseye/Dockerfile) + - [`4.1.5-windowsservercore-ltsc2022`, `4.1-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.1/windowsservercore-ltsc2022/Dockerfile) -- [`4.1.5-windowsservercore-1809`, `4.1-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.1/windowsservercore-1809/Dockerfile) -- [`4.1.5-alpine3.18`, `4.1-alpine3.18`, `4.1.5-alpine`, `4.1-alpine`](https://github.com/HaxeFoundation/docker-library-haxe/blob/b7003bc3280e69dc057ef0e6e8dfb8fd44ce4741/4.1/alpine3.18/Dockerfile) -- [`4.1.5-alpine3.17`, `4.1-alpine3.17`](https://github.com/HaxeFoundation/docker-library-haxe/blob/40bf9156af6f198cd7a57dbfd452e24dc1ceb94e/4.1/alpine3.17/Dockerfile) -- [`4.1.5-alpine3.16`, `4.1-alpine3.16`](https://github.com/HaxeFoundation/docker-library-haxe/blob/5f520ca3ba5942ab581369bab2cbda2b8c4ab992/4.1/alpine3.16/Dockerfile) -- [`4.1.5-alpine3.15`, `4.1-alpine3.15`](https://github.com/HaxeFoundation/docker-library-haxe/blob/b0098b4b730d0d9ff21dbf3d543464228d6b7e99/4.1/alpine3.15/Dockerfile) -- [`4.0.5-bullseye`, `4.0-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/4.0/bullseye/Dockerfile) -- [`4.0.5-buster`, `4.0-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/4.0/buster/Dockerfile) + +- [`4.1.5-alpine3.20`, `4.1-alpine3.20`, `4.1.5-alpine`, `4.1-alpine`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.1/alpine3.20/Dockerfile) + +- [`4.1.5-alpine3.19`, `4.1-alpine3.19`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.1/alpine3.19/Dockerfile) + +- [`4.0.5-bullseye`, `4.0-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/5b15afa744e6374bd547252dbc702ebe9aab4ddb/4.0/bullseye/Dockerfile) + - [`4.0.5-windowsservercore-ltsc2022`, `4.0-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.0/windowsservercore-ltsc2022/Dockerfile) -- [`4.0.5-windowsservercore-1809`, `4.0-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.0/windowsservercore-1809/Dockerfile) -- [`4.0.5-alpine3.18`, `4.0-alpine3.18`, `4.0.5-alpine`, `4.0-alpine`](https://github.com/HaxeFoundation/docker-library-haxe/blob/b7003bc3280e69dc057ef0e6e8dfb8fd44ce4741/4.0/alpine3.18/Dockerfile) -- [`4.0.5-alpine3.17`, `4.0-alpine3.17`](https://github.com/HaxeFoundation/docker-library-haxe/blob/40bf9156af6f198cd7a57dbfd452e24dc1ceb94e/4.0/alpine3.17/Dockerfile) -- [`4.0.5-alpine3.16`, `4.0-alpine3.16`](https://github.com/HaxeFoundation/docker-library-haxe/blob/5f520ca3ba5942ab581369bab2cbda2b8c4ab992/4.0/alpine3.16/Dockerfile) -- [`4.0.5-alpine3.15`, `4.0-alpine3.15`](https://github.com/HaxeFoundation/docker-library-haxe/blob/b0098b4b730d0d9ff21dbf3d543464228d6b7e99/4.0/alpine3.15/Dockerfile) -- [`3.4.7-buster`, `3.4-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/3.4/buster/Dockerfile) -- [`3.4.7-windowsservercore-ltsc2022`, `3.4-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.4/windowsservercore-ltsc2022/Dockerfile) -- [`3.4.7-windowsservercore-1809`, `3.4-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.4/windowsservercore-1809/Dockerfile) -- [`3.3.0-rc.1-buster`, `3.3.0-buster`, `3.3-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/3.3/buster/Dockerfile) -- [`3.3.0-rc.1-windowsservercore-ltsc2022`, `3.3.0-windowsservercore-ltsc2022`, `3.3-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.3/windowsservercore-ltsc2022/Dockerfile) -- [`3.3.0-rc.1-windowsservercore-1809`, `3.3.0-windowsservercore-1809`, `3.3-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.3/windowsservercore-1809/Dockerfile) -- [`3.2.1-buster`, `3.2-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/3.2/buster/Dockerfile) -- [`3.2.1-windowsservercore-ltsc2022`, `3.2-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.2/windowsservercore-ltsc2022/Dockerfile) -- [`3.2.1-windowsservercore-1809`, `3.2-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.2/windowsservercore-1809/Dockerfile) -- [`3.1.3-windowsservercore-ltsc2022`, `3.1-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.1/windowsservercore-ltsc2022/Dockerfile) -- [`3.1.3-windowsservercore-1809`, `3.1-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.1/windowsservercore-1809/Dockerfile) + +- [`4.0.5-alpine3.20`, `4.0-alpine3.20`, `4.0.5-alpine`, `4.0-alpine`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.0/alpine3.20/Dockerfile) + +- [`4.0.5-alpine3.19`, `4.0-alpine3.19`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.0/alpine3.19/Dockerfile) ## Shared Tags -- `4.3.2`, `4.3`, `latest`: - - [`4.3.2-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/bullseye/Dockerfile) - - [`4.3.2-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/windowsservercore-ltsc2022/Dockerfile) - - [`4.3.2-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/windowsservercore-1809/Dockerfile) -- `4.3.2-windowsservercore`, `4.3-windowsservercore`: - - [`4.3.2-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/windowsservercore-ltsc2022/Dockerfile) - - [`4.3.2-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/12949401927fc48a0ba058986fe17f759d0b637e/4.3/windowsservercore-1809/Dockerfile) +- `4.3.6`, `4.3`, `latest`: + + - [`4.3.6-bookworm`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.3/bookworm/Dockerfile) + - [`4.3.6-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/03cdd3f2df8800aff8f28313181564ed9443dedd/4.3/windowsservercore-ltsc2022/Dockerfile) + +- `4.3.6-windowsservercore`, `4.3-windowsservercore`: + + - [`4.3.6-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/03cdd3f2df8800aff8f28313181564ed9443dedd/4.3/windowsservercore-ltsc2022/Dockerfile) + - `4.2.5`, `4.2`: - - [`4.2.5-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/4.2/bullseye/Dockerfile) + + - [`4.2.5-bookworm`](https://github.com/HaxeFoundation/docker-library-haxe/blob/483c3e2b958d83239d03f4469ea9e745c0852326/4.2/bookworm/Dockerfile) - [`4.2.5-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.2/windowsservercore-ltsc2022/Dockerfile) - - [`4.2.5-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.2/windowsservercore-1809/Dockerfile) + - `4.2.5-windowsservercore`, `4.2-windowsservercore`: + - [`4.2.5-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.2/windowsservercore-ltsc2022/Dockerfile) - - [`4.2.5-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.2/windowsservercore-1809/Dockerfile) + - `4.1.5`, `4.1`: - - [`4.1.5-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/4.1/bullseye/Dockerfile) + + - [`4.1.5-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/5b15afa744e6374bd547252dbc702ebe9aab4ddb/4.1/bullseye/Dockerfile) - [`4.1.5-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.1/windowsservercore-ltsc2022/Dockerfile) - - [`4.1.5-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.1/windowsservercore-1809/Dockerfile) + - `4.1.5-windowsservercore`, `4.1-windowsservercore`: + - [`4.1.5-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.1/windowsservercore-ltsc2022/Dockerfile) - - [`4.1.5-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.1/windowsservercore-1809/Dockerfile) + - `4.0.5`, `4.0`: - - [`4.0.5-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/4.0/bullseye/Dockerfile) + + - [`4.0.5-bullseye`](https://github.com/HaxeFoundation/docker-library-haxe/blob/5b15afa744e6374bd547252dbc702ebe9aab4ddb/4.0/bullseye/Dockerfile) - [`4.0.5-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.0/windowsservercore-ltsc2022/Dockerfile) - - [`4.0.5-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.0/windowsservercore-1809/Dockerfile) + - `4.0.5-windowsservercore`, `4.0-windowsservercore`: + - [`4.0.5-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.0/windowsservercore-ltsc2022/Dockerfile) - - [`4.0.5-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/4.0/windowsservercore-1809/Dockerfile) -- `3.4.7`, `3.4`: - - [`3.4.7-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/3.4/buster/Dockerfile) - - [`3.4.7-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.4/windowsservercore-ltsc2022/Dockerfile) - - [`3.4.7-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.4/windowsservercore-1809/Dockerfile) -- `3.4.7-windowsservercore`, `3.4-windowsservercore`: - - [`3.4.7-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.4/windowsservercore-ltsc2022/Dockerfile) - - [`3.4.7-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.4/windowsservercore-1809/Dockerfile) -- `3.3.0-rc.1`, `3.3.0`, `3.3`: - - [`3.3.0-rc.1-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/3.3/buster/Dockerfile) - - [`3.3.0-rc.1-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.3/windowsservercore-ltsc2022/Dockerfile) - - [`3.3.0-rc.1-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.3/windowsservercore-1809/Dockerfile) -- `3.3.0-rc.1-windowsservercore`, `3.3.0-windowsservercore`, `3.3-windowsservercore`: - - [`3.3.0-rc.1-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.3/windowsservercore-ltsc2022/Dockerfile) - - [`3.3.0-rc.1-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.3/windowsservercore-1809/Dockerfile) -- `3.2.1`, `3.2`: - - [`3.2.1-buster`](https://github.com/HaxeFoundation/docker-library-haxe/blob/4e55b2953c28c448f92aaf265168c1bf85b4867f/3.2/buster/Dockerfile) - - [`3.2.1-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.2/windowsservercore-ltsc2022/Dockerfile) - - [`3.2.1-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.2/windowsservercore-1809/Dockerfile) -- `3.2.1-windowsservercore`, `3.2-windowsservercore`: - - [`3.2.1-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.2/windowsservercore-ltsc2022/Dockerfile) - - [`3.2.1-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.2/windowsservercore-1809/Dockerfile) -- `3.1.3-windowsservercore`, `3.1-windowsservercore`, `3.1.3`, `3.1`: - - [`3.1.3-windowsservercore-ltsc2022`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.1/windowsservercore-ltsc2022/Dockerfile) - - [`3.1.3-windowsservercore-1809`](https://github.com/HaxeFoundation/docker-library-haxe/blob/c0367972017a7b87845bf33477e29b1fe64ccc4a/3.1/windowsservercore-1809/Dockerfile) # Quick reference (cont.) @@ -218,7 +193,7 @@ The `haxe` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like bullseye or buster 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. +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. ## `haxe:-windowsservercore` diff --git a/haxe/metadata.json b/haxe/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/haxe/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/hello-world/README.md b/hello-world/README.md index d7e836821c53..8bdb62459ebc 100644 --- a/hello-world/README.md +++ b/hello-world/README.md @@ -28,19 +28,24 @@ WARNING: ## Simple Tags -- [`linux`](https://github.com/docker-library/hello-world/blob/3fb6ebca4163bf5b9cc496ac3e8f11cb1e754aee/amd64/hello-world/Dockerfile) +- [`linux`](https://github.com/docker-library/hello-world/blob/a71acd2dfb8c21c8e42a8f926ce37c1ffbf8eae7/amd64/hello-world/Dockerfile) + +- [`nanoserver-ltsc2025`](https://github.com/docker-library/hello-world/blob/08987c71f648c985f54be2a80bed4223cbd0723b/amd64/hello-world/nanoserver-ltsc2025/Dockerfile) + - [`nanoserver-ltsc2022`](https://github.com/docker-library/hello-world/blob/c816763efda4774cc0c628dca3c7dbd93c099928/amd64/hello-world/nanoserver-ltsc2022/Dockerfile) -- [`nanoserver-1809`](https://github.com/docker-library/hello-world/blob/c816763efda4774cc0c628dca3c7dbd93c099928/amd64/hello-world/nanoserver-1809/Dockerfile) ## Shared Tags - `latest`: - - [`linux`](https://github.com/docker-library/hello-world/blob/3fb6ebca4163bf5b9cc496ac3e8f11cb1e754aee/amd64/hello-world/Dockerfile) + + - [`linux`](https://github.com/docker-library/hello-world/blob/a71acd2dfb8c21c8e42a8f926ce37c1ffbf8eae7/amd64/hello-world/Dockerfile) + - [`nanoserver-ltsc2025`](https://github.com/docker-library/hello-world/blob/08987c71f648c985f54be2a80bed4223cbd0723b/amd64/hello-world/nanoserver-ltsc2025/Dockerfile) - [`nanoserver-ltsc2022`](https://github.com/docker-library/hello-world/blob/c816763efda4774cc0c628dca3c7dbd93c099928/amd64/hello-world/nanoserver-ltsc2022/Dockerfile) - - [`nanoserver-1809`](https://github.com/docker-library/hello-world/blob/c816763efda4774cc0c628dca3c7dbd93c099928/amd64/hello-world/nanoserver-1809/Dockerfile) + - `nanoserver`: + + - [`nanoserver-ltsc2025`](https://github.com/docker-library/hello-world/blob/08987c71f648c985f54be2a80bed4223cbd0723b/amd64/hello-world/nanoserver-ltsc2025/Dockerfile) - [`nanoserver-ltsc2022`](https://github.com/docker-library/hello-world/blob/c816763efda4774cc0c628dca3c7dbd93c099928/amd64/hello-world/nanoserver-ltsc2022/Dockerfile) - - [`nanoserver-1809`](https://github.com/docker-library/hello-world/blob/c816763efda4774cc0c628dca3c7dbd93c099928/amd64/hello-world/nanoserver-1809/Dockerfile) # Quick reference (cont.) @@ -48,7 +53,7 @@ WARNING: [https://github.com/docker-library/hello-world/issues](https://github.com/docker-library/hello-world/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/hello-world/), [`arm32v5`](https://hub.docker.com/r/arm32v5/hello-world/), [`arm32v7`](https://hub.docker.com/r/arm32v7/hello-world/), [`arm64v8`](https://hub.docker.com/r/arm64v8/hello-world/), [`i386`](https://hub.docker.com/r/i386/hello-world/), [`mips64le`](https://hub.docker.com/r/mips64le/hello-world/), [`ppc64le`](https://hub.docker.com/r/ppc64le/hello-world/), [`riscv64`](https://hub.docker.com/r/riscv64/hello-world/), [`s390x`](https://hub.docker.com/r/s390x/hello-world/), [`windows-amd64`](https://hub.docker.com/r/winamd64/hello-world/) + [`amd64`](https://hub.docker.com/r/amd64/hello-world/), [`arm32v5`](https://hub.docker.com/r/arm32v5/hello-world/), [`arm32v6`](https://hub.docker.com/r/arm32v6/hello-world/), [`arm32v7`](https://hub.docker.com/r/arm32v7/hello-world/), [`arm64v8`](https://hub.docker.com/r/arm64v8/hello-world/), [`i386`](https://hub.docker.com/r/i386/hello-world/), [`mips64le`](https://hub.docker.com/r/mips64le/hello-world/), [`ppc64le`](https://hub.docker.com/r/ppc64le/hello-world/), [`riscv64`](https://hub.docker.com/r/riscv64/hello-world/), [`s390x`](https://hub.docker.com/r/s390x/hello-world/), [`windows-amd64`](https://hub.docker.com/r/winamd64/hello-world/) - **Published image artifact details**: [repo-info repo's `repos/hello-world/` directory](https://github.com/docker-library/repo-info/blob/master/repos/hello-world) ([history](https://github.com/docker-library/repo-info/commits/master/repos/hello-world)) @@ -90,7 +95,7 @@ For more examples and ideas, visit: $ docker images hello-world REPOSITORY TAG IMAGE ID SIZE -hello-world latest 9c7a54a9a43c 13.26kB +hello-world latest 74cc54e27dc4 10.07kB ``` ![logo](https://raw.githubusercontent.com/docker-library/docs/01c12653951b2fe592c1f93a13b4e289ada0e3a1/hello-world/logo.png) diff --git a/hello-world/content.md b/hello-world/content.md index 18a58e780746..242556a522b1 100644 --- a/hello-world/content.md +++ b/hello-world/content.md @@ -27,7 +27,7 @@ For more examples and ideas, visit: $ docker images %%IMAGE%% REPOSITORY TAG IMAGE ID SIZE -hello-world latest 9c7a54a9a43c 13.26kB +hello-world latest 74cc54e27dc4 10.07kB ``` %%LOGO%% diff --git a/hello-world/metadata.json b/hello-world/metadata.json new file mode 100644 index 000000000000..e90624aca4ca --- /dev/null +++ b/hello-world/metadata.json @@ -0,0 +1,5 @@ +{ + "hub": { + "categories": [] + } +} diff --git a/hitch/README.md b/hitch/README.md index 3ff58d6e537b..d8972613e2c5 100644 --- a/hitch/README.md +++ b/hitch/README.md @@ -24,7 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1`, `1.8`, `1.8.0`, `1.8.0-1`, `latest`](https://github.com/varnish/docker-hitch/blob/3fe55c4296018b04c7e1d2efdfcadce9c4017e0a/Dockerfile) +- [`1`, `1.8`, `1.8.0`, `1.8.0-1`, `latest`](https://github.com/varnish/docker-hitch/blob/fa19f55cf3b713e5f6787315c889a3885ab270bf/Dockerfile) # Quick reference (cont.) @@ -32,7 +32,7 @@ WARNING: [https://github.com/varnish/docker-hitch/issues](https://github.com/varnish/docker-hitch/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/hitch/), [`arm32v7`](https://hub.docker.com/r/arm32v7/hitch/), [`arm64v8`](https://hub.docker.com/r/arm64v8/hitch/), [`i386`](https://hub.docker.com/r/i386/hitch/), [`ppc64le`](https://hub.docker.com/r/ppc64le/hitch/), [`s390x`](https://hub.docker.com/r/s390x/hitch/) + [`amd64`](https://hub.docker.com/r/amd64/hitch/), [`arm32v7`](https://hub.docker.com/r/arm32v7/hitch/), [`arm64v8`](https://hub.docker.com/r/arm64v8/hitch/), [`i386`](https://hub.docker.com/r/i386/hitch/) - **Published image artifact details**: [repo-info repo's `repos/hitch/` directory](https://github.com/docker-library/repo-info/blob/master/repos/hitch) ([history](https://github.com/docker-library/repo-info/commits/master/repos/hitch)) diff --git a/hitch/metadata.json b/hitch/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/hitch/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/httpd/README.md b/httpd/README.md index 3f4f56a7d10a..fa584664f77d 100644 --- a/httpd/README.md +++ b/httpd/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`2.4.58`, `2.4`, `2`, `latest`, `2.4.58-bookworm`, `2.4-bookworm`, `2-bookworm`, `bookworm`](https://github.com/docker-library/httpd/blob/338f9a4b1e36e09ad2733f36f19e31157f5c959c/2.4/Dockerfile) -- [`2.4.58-alpine`, `2.4-alpine`, `2-alpine`, `alpine`, `2.4.58-alpine3.18`, `2.4-alpine3.18`, `2-alpine3.18`, `alpine3.18`](https://github.com/docker-library/httpd/blob/338f9a4b1e36e09ad2733f36f19e31157f5c959c/2.4/alpine/Dockerfile) +- [`2.4.63`, `2.4`, `2`, `latest`, `2.4.63-bookworm`, `2.4-bookworm`, `2-bookworm`, `bookworm`](https://github.com/docker-library/httpd/blob/329f85a9ad75526de865749a41b273ead99fb69b/2.4/Dockerfile) + +- [`2.4.63-alpine`, `2.4-alpine`, `2-alpine`, `alpine`, `2.4.63-alpine3.22`, `2.4-alpine3.22`, `2-alpine3.22`, `alpine3.22`](https://github.com/docker-library/httpd/blob/7b36de3e42a8698eab0938ee92f93cfddf6ff835/2.4/alpine/Dockerfile) # Quick reference (cont.) @@ -33,7 +34,7 @@ WARNING: [https://github.com/docker-library/httpd/issues](https://github.com/docker-library/httpd/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/httpd/), [`arm32v5`](https://hub.docker.com/r/arm32v5/httpd/), [`arm32v6`](https://hub.docker.com/r/arm32v6/httpd/), [`arm32v7`](https://hub.docker.com/r/arm32v7/httpd/), [`arm64v8`](https://hub.docker.com/r/arm64v8/httpd/), [`i386`](https://hub.docker.com/r/i386/httpd/), [`mips64le`](https://hub.docker.com/r/mips64le/httpd/), [`ppc64le`](https://hub.docker.com/r/ppc64le/httpd/), [`s390x`](https://hub.docker.com/r/s390x/httpd/) + [`amd64`](https://hub.docker.com/r/amd64/httpd/), [`arm32v5`](https://hub.docker.com/r/arm32v5/httpd/), [`arm32v6`](https://hub.docker.com/r/arm32v6/httpd/), [`arm32v7`](https://hub.docker.com/r/arm32v7/httpd/), [`arm64v8`](https://hub.docker.com/r/arm64v8/httpd/), [`i386`](https://hub.docker.com/r/i386/httpd/), [`mips64le`](https://hub.docker.com/r/mips64le/httpd/), [`ppc64le`](https://hub.docker.com/r/ppc64le/httpd/), [`riscv64`](https://hub.docker.com/r/riscv64/httpd/), [`s390x`](https://hub.docker.com/r/s390x/httpd/) - **Published image artifact details**: [repo-info repo's `repos/httpd/` directory](https://github.com/docker-library/repo-info/blob/master/repos/httpd) ([history](https://github.com/docker-library/repo-info/commits/master/repos/httpd)) diff --git a/httpd/metadata.json b/httpd/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/httpd/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/hylang/README.md b/hylang/README.md index aa5ade08feae..0ed657157fb1 100644 --- a/hylang/README.md +++ b/hylang/README.md @@ -28,51 +28,117 @@ WARNING: ## Simple Tags -- [`0.27.0-python3.12-bookworm`, `0.27-python3.12-bookworm`, `0-python3.12-bookworm`, `python3.12-bookworm`, `0.27.0-bookworm`, `0.27-bookworm`, `0-bookworm`, `bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.12-bookworm) -- [`0.27.0-python3.12-bullseye`, `0.27-python3.12-bullseye`, `0-python3.12-bullseye`, `python3.12-bullseye`, `0.27.0-bullseye`, `0.27-bullseye`, `0-bullseye`, `bullseye`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.12-bullseye) -- [`0.27.0-python3.12-alpine3.18`, `0.27-python3.12-alpine3.18`, `0-python3.12-alpine3.18`, `python3.12-alpine3.18`, `0.27.0-alpine3.18`, `0.27-alpine3.18`, `0-alpine3.18`, `alpine3.18`, `0.27.0-python3.12-alpine`, `0.27-python3.12-alpine`, `0-python3.12-alpine`, `python3.12-alpine`, `0.27.0-alpine`, `0.27-alpine`, `0-alpine`, `alpine`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.12-alpine3.18) -- [`0.27.0-python3.12-alpine3.17`, `0.27-python3.12-alpine3.17`, `0-python3.12-alpine3.17`, `python3.12-alpine3.17`, `0.27.0-alpine3.17`, `0.27-alpine3.17`, `0-alpine3.17`, `alpine3.17`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.12-alpine3.17) -- [`0.27.0-python3.11-bookworm`, `0.27-python3.11-bookworm`, `0-python3.11-bookworm`, `python3.11-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.11-bookworm) -- [`0.27.0-python3.11-bullseye`, `0.27-python3.11-bullseye`, `0-python3.11-bullseye`, `python3.11-bullseye`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.11-bullseye) -- [`0.27.0-python3.11-alpine3.18`, `0.27-python3.11-alpine3.18`, `0-python3.11-alpine3.18`, `python3.11-alpine3.18`, `0.27.0-python3.11-alpine`, `0.27-python3.11-alpine`, `0-python3.11-alpine`, `python3.11-alpine`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.11-alpine3.18) -- [`0.27.0-python3.11-alpine3.17`, `0.27-python3.11-alpine3.17`, `0-python3.11-alpine3.17`, `python3.11-alpine3.17`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.11-alpine3.17) -- [`0.27.0-python3.10-bookworm`, `0.27-python3.10-bookworm`, `0-python3.10-bookworm`, `python3.10-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.10-bookworm) -- [`0.27.0-python3.10-bullseye`, `0.27-python3.10-bullseye`, `0-python3.10-bullseye`, `python3.10-bullseye`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.10-bullseye) -- [`0.27.0-python3.10-alpine3.18`, `0.27-python3.10-alpine3.18`, `0-python3.10-alpine3.18`, `python3.10-alpine3.18`, `0.27.0-python3.10-alpine`, `0.27-python3.10-alpine`, `0-python3.10-alpine`, `python3.10-alpine`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.10-alpine3.18) -- [`0.27.0-python3.10-alpine3.17`, `0.27-python3.10-alpine3.17`, `0-python3.10-alpine3.17`, `python3.10-alpine3.17`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.10-alpine3.17) -- [`0.27.0-python3.9-bookworm`, `0.27-python3.9-bookworm`, `0-python3.9-bookworm`, `python3.9-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.9-bookworm) -- [`0.27.0-python3.9-bullseye`, `0.27-python3.9-bullseye`, `0-python3.9-bullseye`, `python3.9-bullseye`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.9-bullseye) -- [`0.27.0-python3.9-alpine3.18`, `0.27-python3.9-alpine3.18`, `0-python3.9-alpine3.18`, `python3.9-alpine3.18`, `0.27.0-python3.9-alpine`, `0.27-python3.9-alpine`, `0-python3.9-alpine`, `python3.9-alpine`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.9-alpine3.18) -- [`0.27.0-python3.9-alpine3.17`, `0.27-python3.9-alpine3.17`, `0-python3.9-alpine3.17`, `python3.9-alpine3.17`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.9-alpine3.17) -- [`0.27.0-python3.8-bookworm`, `0.27-python3.8-bookworm`, `0-python3.8-bookworm`, `python3.8-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.8-bookworm) -- [`0.27.0-python3.8-bullseye`, `0.27-python3.8-bullseye`, `0-python3.8-bullseye`, `python3.8-bullseye`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.8-bullseye) -- [`0.27.0-python3.8-alpine3.18`, `0.27-python3.8-alpine3.18`, `0-python3.8-alpine3.18`, `python3.8-alpine3.18`, `0.27.0-python3.8-alpine`, `0.27-python3.8-alpine`, `0-python3.8-alpine`, `python3.8-alpine`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.8-alpine3.18) -- [`0.27.0-python3.8-alpine3.17`, `0.27-python3.8-alpine3.17`, `0-python3.8-alpine3.17`, `python3.8-alpine3.17`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.8-alpine3.17) -- [`0.27.0-pypy3.10-bookworm`, `0.27-pypy3.10-bookworm`, `0-pypy3.10-bookworm`, `pypy3.10-bookworm`, `0.27.0-pypy-bookworm`, `0.27-pypy-bookworm`, `0-pypy-bookworm`, `pypy-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.10-bookworm) -- [`0.27.0-pypy3.10-bullseye`, `0.27-pypy3.10-bullseye`, `0-pypy3.10-bullseye`, `pypy3.10-bullseye`, `0.27.0-pypy-bullseye`, `0.27-pypy-bullseye`, `0-pypy-bullseye`, `pypy-bullseye`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.10-bullseye) -- [`0.27.0-pypy3.9-bookworm`, `0.27-pypy3.9-bookworm`, `0-pypy3.9-bookworm`, `pypy3.9-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.9-bookworm) -- [`0.27.0-pypy3.9-bullseye`, `0.27-pypy3.9-bullseye`, `0-pypy3.9-bullseye`, `pypy3.9-bullseye`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.9-bullseye) -- [`0.27.0-pypy3.9-windowsservercore-ltsc2022`, `0.27-pypy3.9-windowsservercore-ltsc2022`, `0-pypy3.9-windowsservercore-ltsc2022`, `pypy3.9-windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.9-windowsservercore-ltsc2022) -- [`0.27.0-pypy3.9-windowsservercore-1809`, `0.27-pypy3.9-windowsservercore-1809`, `0-pypy3.9-windowsservercore-1809`, `pypy3.9-windowsservercore-1809`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.9-windowsservercore-1809) +- [`1.1.0-python3.13-bookworm`, `1.1-python3.13-bookworm`, `1-python3.13-bookworm`, `python3.13-bookworm`, `1.1.0-bookworm`, `1.1-bookworm`, `1-bookworm`, `bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.13-bookworm) + +- [`1.1.0-python3.13-bullseye`, `1.1-python3.13-bullseye`, `1-python3.13-bullseye`, `python3.13-bullseye`, `1.1.0-bullseye`, `1.1-bullseye`, `1-bullseye`, `bullseye`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.13-bullseye) + +- [`1.1.0-python3.13-alpine3.22`, `1.1-python3.13-alpine3.22`, `1-python3.13-alpine3.22`, `python3.13-alpine3.22`, `1.1.0-alpine3.22`, `1.1-alpine3.22`, `1-alpine3.22`, `alpine3.22`, `1.1.0-python3.13-alpine`, `1.1-python3.13-alpine`, `1-python3.13-alpine`, `python3.13-alpine`, `1.1.0-alpine`, `1.1-alpine`, `1-alpine`, `alpine`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.13-alpine3.22) + +- [`1.1.0-python3.13-alpine3.21`, `1.1-python3.13-alpine3.21`, `1-python3.13-alpine3.21`, `python3.13-alpine3.21`, `1.1.0-alpine3.21`, `1.1-alpine3.21`, `1-alpine3.21`, `alpine3.21`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.13-alpine3.21) + +- [`1.1.0-python3.13-windowsservercore-ltsc2025`, `1.1-python3.13-windowsservercore-ltsc2025`, `1-python3.13-windowsservercore-ltsc2025`, `python3.13-windowsservercore-ltsc2025`, `1.1.0-windowsservercore-ltsc2025`, `1.1-windowsservercore-ltsc2025`, `1-windowsservercore-ltsc2025`, `windowsservercore-ltsc2025`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.13-windowsservercore-ltsc2025) + +- [`1.1.0-python3.13-windowsservercore-ltsc2022`, `1.1-python3.13-windowsservercore-ltsc2022`, `1-python3.13-windowsservercore-ltsc2022`, `python3.13-windowsservercore-ltsc2022`, `1.1.0-windowsservercore-ltsc2022`, `1.1-windowsservercore-ltsc2022`, `1-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.13-windowsservercore-ltsc2022) + +- [`1.1.0-python3.12-bookworm`, `1.1-python3.12-bookworm`, `1-python3.12-bookworm`, `python3.12-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.12-bookworm) + +- [`1.1.0-python3.12-bullseye`, `1.1-python3.12-bullseye`, `1-python3.12-bullseye`, `python3.12-bullseye`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.12-bullseye) + +- [`1.1.0-python3.12-alpine3.22`, `1.1-python3.12-alpine3.22`, `1-python3.12-alpine3.22`, `python3.12-alpine3.22`, `1.1.0-python3.12-alpine`, `1.1-python3.12-alpine`, `1-python3.12-alpine`, `python3.12-alpine`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.12-alpine3.22) + +- [`1.1.0-python3.12-alpine3.21`, `1.1-python3.12-alpine3.21`, `1-python3.12-alpine3.21`, `python3.12-alpine3.21`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.12-alpine3.21) + +- [`1.1.0-python3.11-bookworm`, `1.1-python3.11-bookworm`, `1-python3.11-bookworm`, `python3.11-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.11-bookworm) + +- [`1.1.0-python3.11-bullseye`, `1.1-python3.11-bullseye`, `1-python3.11-bullseye`, `python3.11-bullseye`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.11-bullseye) + +- [`1.1.0-python3.11-alpine3.22`, `1.1-python3.11-alpine3.22`, `1-python3.11-alpine3.22`, `python3.11-alpine3.22`, `1.1.0-python3.11-alpine`, `1.1-python3.11-alpine`, `1-python3.11-alpine`, `python3.11-alpine`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.11-alpine3.22) + +- [`1.1.0-python3.11-alpine3.21`, `1.1-python3.11-alpine3.21`, `1-python3.11-alpine3.21`, `python3.11-alpine3.21`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.11-alpine3.21) + +- [`1.1.0-python3.10-bookworm`, `1.1-python3.10-bookworm`, `1-python3.10-bookworm`, `python3.10-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.10-bookworm) + +- [`1.1.0-python3.10-bullseye`, `1.1-python3.10-bullseye`, `1-python3.10-bullseye`, `python3.10-bullseye`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.10-bullseye) + +- [`1.1.0-python3.10-alpine3.22`, `1.1-python3.10-alpine3.22`, `1-python3.10-alpine3.22`, `python3.10-alpine3.22`, `1.1.0-python3.10-alpine`, `1.1-python3.10-alpine`, `1-python3.10-alpine`, `python3.10-alpine`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.10-alpine3.22) + +- [`1.1.0-python3.10-alpine3.21`, `1.1-python3.10-alpine3.21`, `1-python3.10-alpine3.21`, `python3.10-alpine3.21`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.10-alpine3.21) + +- [`1.1.0-python3.9-bookworm`, `1.1-python3.9-bookworm`, `1-python3.9-bookworm`, `python3.9-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.9-bookworm) + +- [`1.1.0-python3.9-bullseye`, `1.1-python3.9-bullseye`, `1-python3.9-bullseye`, `python3.9-bullseye`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.9-bullseye) + +- [`1.1.0-python3.9-alpine3.22`, `1.1-python3.9-alpine3.22`, `1-python3.9-alpine3.22`, `python3.9-alpine3.22`, `1.1.0-python3.9-alpine`, `1.1-python3.9-alpine`, `1-python3.9-alpine`, `python3.9-alpine`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.9-alpine3.22) + +- [`1.1.0-python3.9-alpine3.21`, `1.1-python3.9-alpine3.21`, `1-python3.9-alpine3.21`, `python3.9-alpine3.21`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.9-alpine3.21) + +- [`1.1.0-python3.14-rc-bookworm`, `1.1-python3.14-rc-bookworm`, `1-python3.14-rc-bookworm`, `python3.14-rc-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.14-rc-bookworm) + +- [`1.1.0-python3.14-rc-bullseye`, `1.1-python3.14-rc-bullseye`, `1-python3.14-rc-bullseye`, `python3.14-rc-bullseye`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.14-rc-bullseye) + +- [`1.1.0-python3.14-rc-alpine3.22`, `1.1-python3.14-rc-alpine3.22`, `1-python3.14-rc-alpine3.22`, `python3.14-rc-alpine3.22`, `1.1.0-python3.14-rc-alpine`, `1.1-python3.14-rc-alpine`, `1-python3.14-rc-alpine`, `python3.14-rc-alpine`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.14-rc-alpine3.22) + +- [`1.1.0-python3.14-rc-alpine3.21`, `1.1-python3.14-rc-alpine3.21`, `1-python3.14-rc-alpine3.21`, `python3.14-rc-alpine3.21`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.14-rc-alpine3.21) + +- [`1.1.0-python3.14-rc-windowsservercore-ltsc2025`, `1.1-python3.14-rc-windowsservercore-ltsc2025`, `1-python3.14-rc-windowsservercore-ltsc2025`, `python3.14-rc-windowsservercore-ltsc2025`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.14-rc-windowsservercore-ltsc2025) + +- [`1.1.0-python3.14-rc-windowsservercore-ltsc2022`, `1.1-python3.14-rc-windowsservercore-ltsc2022`, `1-python3.14-rc-windowsservercore-ltsc2022`, `python3.14-rc-windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.14-rc-windowsservercore-ltsc2022) + +- [`1.1.0-pypy3.11-bookworm`, `1.1-pypy3.11-bookworm`, `1-pypy3.11-bookworm`, `pypy3.11-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.11-bookworm) + +- [`1.1.0-pypy3.11-windowsservercore-ltsc2025`, `1.1-pypy3.11-windowsservercore-ltsc2025`, `1-pypy3.11-windowsservercore-ltsc2025`, `pypy3.11-windowsservercore-ltsc2025`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.11-windowsservercore-ltsc2025) + +- [`1.1.0-pypy3.11-windowsservercore-ltsc2022`, `1.1-pypy3.11-windowsservercore-ltsc2022`, `1-pypy3.11-windowsservercore-ltsc2022`, `pypy3.11-windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.11-windowsservercore-ltsc2022) + +- [`1.1.0-pypy3.10-bookworm`, `1.1-pypy3.10-bookworm`, `1-pypy3.10-bookworm`, `pypy3.10-bookworm`, `1.1.0-pypy-bookworm`, `1.1-pypy-bookworm`, `1-pypy-bookworm`, `pypy-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.10-bookworm) + +- [`1.1.0-pypy3.10-bullseye`, `1.1-pypy3.10-bullseye`, `1-pypy3.10-bullseye`, `pypy3.10-bullseye`, `1.1.0-pypy-bullseye`, `1.1-pypy-bullseye`, `1-pypy-bullseye`, `pypy-bullseye`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.10-bullseye) + +- [`1.1.0-pypy3.10-windowsservercore-ltsc2025`, `1.1-pypy3.10-windowsservercore-ltsc2025`, `1-pypy3.10-windowsservercore-ltsc2025`, `pypy3.10-windowsservercore-ltsc2025`, `1.1.0-pypy-windowsservercore-ltsc2025`, `1.1-pypy-windowsservercore-ltsc2025`, `1-pypy-windowsservercore-ltsc2025`, `pypy-windowsservercore-ltsc2025`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.10-windowsservercore-ltsc2025) + +- [`1.1.0-pypy3.10-windowsservercore-ltsc2022`, `1.1-pypy3.10-windowsservercore-ltsc2022`, `1-pypy3.10-windowsservercore-ltsc2022`, `pypy3.10-windowsservercore-ltsc2022`, `1.1.0-pypy-windowsservercore-ltsc2022`, `1.1-pypy-windowsservercore-ltsc2022`, `1-pypy-windowsservercore-ltsc2022`, `pypy-windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.10-windowsservercore-ltsc2022) ## Shared Tags -- `0.27.0-python3.12`, `0.27-python3.12`, `0-python3.12`, `python3.12`, `0.27.0`, `0.27`, `0`, `latest`: - - [`0.27.0-python3.12-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.12-bookworm) -- `0.27.0-python3.11`, `0.27-python3.11`, `0-python3.11`, `python3.11`: - - [`0.27.0-python3.11-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.11-bookworm) -- `0.27.0-python3.10`, `0.27-python3.10`, `0-python3.10`, `python3.10`: - - [`0.27.0-python3.10-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.10-bookworm) -- `0.27.0-python3.9`, `0.27-python3.9`, `0-python3.9`, `python3.9`: - - [`0.27.0-python3.9-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.9-bookworm) -- `0.27.0-python3.8`, `0.27-python3.8`, `0-python3.8`, `python3.8`: - - [`0.27.0-python3.8-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.python3.8-bookworm) -- `0.27.0-pypy3.10`, `0.27-pypy3.10`, `0-pypy3.10`, `pypy3.10`, `0.27.0-pypy`, `0.27-pypy`, `0-pypy`, `pypy`: - - [`0.27.0-pypy3.10-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.10-bookworm) -- `0.27.0-pypy3.9`, `0.27-pypy3.9`, `0-pypy3.9`, `pypy3.9`: - - [`0.27.0-pypy3.9-bookworm`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.9-bookworm) - - [`0.27.0-pypy3.9-windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.9-windowsservercore-ltsc2022) - - [`0.27.0-pypy3.9-windowsservercore-1809`](https://github.com/hylang/docker-hylang/blob/7b900c57b77653b284292f1b1c0fcdd2e42ef57a/dockerfiles-generated/Dockerfile.pypy3.9-windowsservercore-1809) +- `1.1.0-python3.13`, `1.1-python3.13`, `1-python3.13`, `python3.13`, `1.1.0`, `1.1`, `1`, `latest`: + + - [`1.1.0-python3.13-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.13-bookworm) + - [`1.1.0-python3.13-windowsservercore-ltsc2025`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.13-windowsservercore-ltsc2025) + - [`1.1.0-python3.13-windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.13-windowsservercore-ltsc2022) + +- `1.1.0-python3.12`, `1.1-python3.12`, `1-python3.12`, `python3.12`: + + - [`1.1.0-python3.12-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.12-bookworm) + +- `1.1.0-python3.11`, `1.1-python3.11`, `1-python3.11`, `python3.11`: + + - [`1.1.0-python3.11-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.11-bookworm) + +- `1.1.0-python3.10`, `1.1-python3.10`, `1-python3.10`, `python3.10`: + + - [`1.1.0-python3.10-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.10-bookworm) + +- `1.1.0-python3.9`, `1.1-python3.9`, `1-python3.9`, `python3.9`: + + - [`1.1.0-python3.9-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.9-bookworm) + +- `1.1.0-python3.14-rc`, `1.1-python3.14-rc`, `1-python3.14-rc`, `python3.14-rc`: + + - [`1.1.0-python3.14-rc-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.14-rc-bookworm) + - [`1.1.0-python3.14-rc-windowsservercore-ltsc2025`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.14-rc-windowsservercore-ltsc2025) + - [`1.1.0-python3.14-rc-windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.python3.14-rc-windowsservercore-ltsc2022) + +- `1.1.0-pypy3.11`, `1.1-pypy3.11`, `1-pypy3.11`, `pypy3.11`: + + - [`1.1.0-pypy3.11-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.11-bookworm) + - [`1.1.0-pypy3.11-windowsservercore-ltsc2025`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.11-windowsservercore-ltsc2025) + - [`1.1.0-pypy3.11-windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.11-windowsservercore-ltsc2022) + +- `1.1.0-pypy3.10`, `1.1-pypy3.10`, `1-pypy3.10`, `pypy3.10`, `1.1.0-pypy`, `1.1-pypy`, `1-pypy`, `pypy`: + + - [`1.1.0-pypy3.10-bookworm`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.10-bookworm) + - [`1.1.0-pypy3.10-windowsservercore-ltsc2025`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.10-windowsservercore-ltsc2025) + - [`1.1.0-pypy3.10-windowsservercore-ltsc2022`](https://github.com/hylang/docker-hylang/blob/9ed6ce9a2ebd814e1881fde9c92aa2f99ff6cb47/dockerfiles-generated/Dockerfile.pypy3.10-windowsservercore-ltsc2022) # Quick reference (cont.) @@ -80,7 +146,7 @@ WARNING: [https://github.com/hylang/hy/issues](https://github.com/hylang/hy/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/hylang/), [`arm32v5`](https://hub.docker.com/r/arm32v5/hylang/), [`arm32v6`](https://hub.docker.com/r/arm32v6/hylang/), [`arm32v7`](https://hub.docker.com/r/arm32v7/hylang/), [`arm64v8`](https://hub.docker.com/r/arm64v8/hylang/), [`i386`](https://hub.docker.com/r/i386/hylang/), [`mips64le`](https://hub.docker.com/r/mips64le/hylang/), [`ppc64le`](https://hub.docker.com/r/ppc64le/hylang/), [`s390x`](https://hub.docker.com/r/s390x/hylang/), [`windows-amd64`](https://hub.docker.com/r/winamd64/hylang/) + [`amd64`](https://hub.docker.com/r/amd64/hylang/), [`arm32v5`](https://hub.docker.com/r/arm32v5/hylang/), [`arm32v6`](https://hub.docker.com/r/arm32v6/hylang/), [`arm32v7`](https://hub.docker.com/r/arm32v7/hylang/), [`arm64v8`](https://hub.docker.com/r/arm64v8/hylang/), [`i386`](https://hub.docker.com/r/i386/hylang/), [`mips64le`](https://hub.docker.com/r/mips64le/hylang/), [`ppc64le`](https://hub.docker.com/r/ppc64le/hylang/), [`riscv64`](https://hub.docker.com/r/riscv64/hylang/), [`s390x`](https://hub.docker.com/r/s390x/hylang/), [`windows-amd64`](https://hub.docker.com/r/winamd64/hylang/) - **Published image artifact details**: [repo-info repo's `repos/hylang/` directory](https://github.com/docker-library/repo-info/blob/master/repos/hylang) ([history](https://github.com/docker-library/repo-info/commits/master/repos/hylang)) diff --git a/hylang/metadata.json b/hylang/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/hylang/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/ibm-semeru-runtimes/README.md b/ibm-semeru-runtimes/README.md index 27b8e20d93f7..1f53a99ed2e1 100644 --- a/ibm-semeru-runtimes/README.md +++ b/ibm-semeru-runtimes/README.md @@ -28,49 +28,71 @@ WARNING: ## Simple Tags -- [`open-8u382-b05-jdk-focal`, `open-8-jdk-focal`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/8/jdk/ubuntu/focal/Dockerfile.open.releases.full) -- [`open-8u382-b05-jdk-jammy`, `open-8-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/8/jdk/ubuntu/jammy/Dockerfile.open.releases.full) -- [`open-8u382-b05-jdk-centos7`, `open-8-jdk-centos7`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/8/jdk/centos/Dockerfile.open.releases.full) -- [`open-8u382-b05-jre-focal`, `open-8-jre-focal`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/8/jre/ubuntu/focal/Dockerfile.open.releases.full) -- [`open-8u382-b05-jre-jammy`, `open-8-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/8/jre/ubuntu/jammy/Dockerfile.open.releases.full) -- [`open-8u382-b05-jre-centos7`, `open-8-jre-centos7`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/8/jre/centos/Dockerfile.open.releases.full) -- [`open-11.0.20.1_1-jdk-focal`, `open-11-jdk-focal`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/11/jdk/ubuntu/focal/Dockerfile.open.releases.full) -- [`open-11.0.20.1_1-jdk-jammy`, `open-11-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/11/jdk/ubuntu/jammy/Dockerfile.open.releases.full) -- [`open-11.0.20.1_1-jdk-centos7`, `open-11-jdk-centos7`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/11/jdk/centos/Dockerfile.open.releases.full) -- [`open-11.0.20.1_1-jre-focal`, `open-11-jre-focal`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/11/jre/ubuntu/focal/Dockerfile.open.releases.full) -- [`open-11.0.20.1_1-jre-jammy`, `open-11-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/11/jre/ubuntu/jammy/Dockerfile.open.releases.full) -- [`open-11.0.20.1_1-jre-centos7`, `open-11-jre-centos7`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/11/jre/centos/Dockerfile.open.releases.full) -- [`open-17.0.8.1_1-jdk-focal`, `open-17-jdk-focal`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/17/jdk/ubuntu/focal/Dockerfile.open.releases.full) -- [`open-17.0.8.1_1-jdk-jammy`, `open-17-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/17/jdk/ubuntu/jammy/Dockerfile.open.releases.full) -- [`open-17.0.8.1_1-jdk-centos7`, `open-17-jdk-centos7`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/17/jdk/centos/Dockerfile.open.releases.full) -- [`open-17.0.8.1_1-jre-focal`, `open-17-jre-focal`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/17/jre/ubuntu/focal/Dockerfile.open.releases.full) -- [`open-17.0.8.1_1-jre-jammy`, `open-17-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/17/jre/ubuntu/jammy/Dockerfile.open.releases.full) -- [`open-17.0.8.1_1-jre-centos7`, `open-17-jre-centos7`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/17/jre/centos/Dockerfile.open.releases.full) -- [`open-20.0.2_9-jdk-focal`, `open-20-jdk-focal`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/20/jdk/ubuntu/focal/Dockerfile.open.releases.full) -- [`open-20.0.2_9-jdk-jammy`, `open-20-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/20/jdk/ubuntu/jammy/Dockerfile.open.releases.full) -- [`open-20.0.2_9-jdk-centos7`, `open-20-jdk-centos7`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/20/jdk/centos/Dockerfile.open.releases.full) -- [`open-20.0.2_9-jre-focal`, `open-20-jre-focal`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/20/jre/ubuntu/focal/Dockerfile.open.releases.full) -- [`open-20.0.2_9-jre-jammy`, `open-20-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/20/jre/ubuntu/jammy/Dockerfile.open.releases.full) -- [`open-20.0.2_9-jre-centos7`, `open-20-jre-centos7`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/20/jre/centos/Dockerfile.open.releases.full) +- [`open-8u452-b09-jdk-jammy`, `open-8-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/8/jdk/ubuntu/jammy/Dockerfile.open.releases.full) + +- [`open-8u452-b09-jdk-noble`, `open-8-jdk-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/8/jdk/ubuntu/noble/Dockerfile.open.releases.full) + +- [`open-8u452-b09-jre-jammy`, `open-8-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/8/jre/ubuntu/jammy/Dockerfile.open.releases.full) + +- [`open-8u452-b09-jre-noble`, `open-8-jre-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/8/jre/ubuntu/noble/Dockerfile.open.releases.full) + +- [`open-11.0.27_6-jdk-jammy`, `open-11-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/11/jdk/ubuntu/jammy/Dockerfile.open.releases.full) + +- [`open-11.0.27_6-jdk-noble`, `open-11-jdk-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/11/jdk/ubuntu/noble/Dockerfile.open.releases.full) + +- [`open-11.0.27_6-jre-jammy`, `open-11-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/11/jre/ubuntu/jammy/Dockerfile.open.releases.full) + +- [`open-11.0.27_6-jre-noble`, `open-11-jre-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/11/jre/ubuntu/noble/Dockerfile.open.releases.full) + +- [`open-17.0.15_6-jdk-jammy`, `open-17-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/17/jdk/ubuntu/jammy/Dockerfile.open.releases.full) + +- [`open-17.0.15_6-jdk-noble`, `open-17-jdk-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/17/jdk/ubuntu/noble/Dockerfile.open.releases.full) + +- [`open-17.0.15_6-jre-jammy`, `open-17-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/17/jre/ubuntu/jammy/Dockerfile.open.releases.full) + +- [`open-17.0.15_6-jre-noble`, `open-17-jre-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/17/jre/ubuntu/noble/Dockerfile.open.releases.full) + +- [`open-21.0.7_6-jdk-jammy`, `open-21-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/21/jdk/ubuntu/jammy/Dockerfile.open.releases.full) + +- [`open-21.0.7_6-jdk-noble`, `open-21-jdk-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/21/jdk/ubuntu/noble/Dockerfile.open.releases.full) + +- [`open-21.0.7_6-jre-jammy`, `open-21-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/21/jre/ubuntu/jammy/Dockerfile.open.releases.full) + +- [`open-21.0.7_6-jre-noble`, `open-21-jre-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/21/jre/ubuntu/noble/Dockerfile.open.releases.full) ## Shared Tags -- `open-8u382-b05-jdk`, `open-8-jdk`: - - [`open-8u382-b05-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/8/jdk/ubuntu/jammy/Dockerfile.open.releases.full) -- `open-8u382-b05-jre`, `open-8-jre`: - - [`open-8u382-b05-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/8/jre/ubuntu/jammy/Dockerfile.open.releases.full) -- `open-11.0.20.1_1-jdk`, `open-11-jdk`: - - [`open-11.0.20.1_1-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/11/jdk/ubuntu/jammy/Dockerfile.open.releases.full) -- `open-11.0.20.1_1-jre`, `open-11-jre`: - - [`open-11.0.20.1_1-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/11/jre/ubuntu/jammy/Dockerfile.open.releases.full) -- `open-17.0.8.1_1-jdk`, `open-17-jdk`: - - [`open-17.0.8.1_1-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/17/jdk/ubuntu/jammy/Dockerfile.open.releases.full) -- `open-17.0.8.1_1-jre`, `open-17-jre`: - - [`open-17.0.8.1_1-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/17/jre/ubuntu/jammy/Dockerfile.open.releases.full) -- `open-20.0.2_9-jdk`, `open-20-jdk`: - - [`open-20.0.2_9-jdk-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/20/jdk/ubuntu/jammy/Dockerfile.open.releases.full) -- `open-20.0.2_9-jre`, `open-20-jre`: - - [`open-20.0.2_9-jre-jammy`](https://github.com/ibmruntimes/semeru-containers/blob/b82ce32c38a0c6c56158818960e041ca3871b46a/20/jre/ubuntu/jammy/Dockerfile.open.releases.full) +- `open-8u452-b09-jdk`, `open-8-jdk`: + + - [`open-8u452-b09-jdk-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/8/jdk/ubuntu/noble/Dockerfile.open.releases.full) + +- `open-8u452-b09-jre`, `open-8-jre`: + + - [`open-8u452-b09-jre-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/8/jre/ubuntu/noble/Dockerfile.open.releases.full) + +- `open-11.0.27_6-jdk`, `open-11-jdk`: + + - [`open-11.0.27_6-jdk-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/11/jdk/ubuntu/noble/Dockerfile.open.releases.full) + +- `open-11.0.27_6-jre`, `open-11-jre`: + + - [`open-11.0.27_6-jre-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/11/jre/ubuntu/noble/Dockerfile.open.releases.full) + +- `open-17.0.15_6-jdk`, `open-17-jdk`: + + - [`open-17.0.15_6-jdk-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/17/jdk/ubuntu/noble/Dockerfile.open.releases.full) + +- `open-17.0.15_6-jre`, `open-17-jre`: + + - [`open-17.0.15_6-jre-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/17/jre/ubuntu/noble/Dockerfile.open.releases.full) + +- `open-21.0.7_6-jdk`, `open-21-jdk`: + + - [`open-21.0.7_6-jdk-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/21/jdk/ubuntu/noble/Dockerfile.open.releases.full) + +- `open-21.0.7_6-jre`, `open-21-jre`: + + - [`open-21.0.7_6-jre-noble`](https://github.com/ibmruntimes/semeru-containers/blob/faa20429d12e88ada8d6b38dbcbca8741853e8e8/21/jre/ubuntu/noble/Dockerfile.open.releases.full) # Quick reference (cont.) @@ -104,7 +126,7 @@ The IBM Semeru Runtimes are free production-ready open source binaries built wit To run a pre-built japp.jar file with the latest OpenJDK 11, use the following Dockerfile: ```dockerfile -FROM ibm-semeru-runtimes:11 +FROM ibm-semeru-runtimes:open-11-jdk RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-jar", "/opt/app/japp.jar"] @@ -125,7 +147,7 @@ If you are using a distribution that we don't provide an image for you can copy # Example FROM ENV JAVA_HOME=/opt/java/openjdk -COPY --from=ibm-semeru-runtimes:11 $JAVA_HOME $JAVA_HOME +COPY --from=ibm-semeru-runtimes:open-11-jdk $JAVA_HOME $JAVA_HOME ENV PATH="${JAVA_HOME}/bin:${PATH}" ``` diff --git a/ibm-semeru-runtimes/content.md b/ibm-semeru-runtimes/content.md index 20cce094a9a3..eca238315cef 100644 --- a/ibm-semeru-runtimes/content.md +++ b/ibm-semeru-runtimes/content.md @@ -11,7 +11,7 @@ The IBM Semeru Runtimes are free production-ready open source binaries built wit To run a pre-built japp.jar file with the latest OpenJDK 11, use the following Dockerfile: ```dockerfile -FROM %%IMAGE%%:11 +FROM %%IMAGE%%:open-11-jdk RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-jar", "/opt/app/japp.jar"] @@ -32,6 +32,6 @@ If you are using a distribution that we don't provide an image for you can copy # Example FROM ENV JAVA_HOME=/opt/java/openjdk -COPY --from=%%IMAGE%%:11 $JAVA_HOME $JAVA_HOME +COPY --from=%%IMAGE%%:open-11-jdk $JAVA_HOME $JAVA_HOME ENV PATH="${JAVA_HOME}/bin:${PATH}" ``` diff --git a/ibm-semeru-runtimes/logo.svg b/ibm-semeru-runtimes/logo.svg new file mode 100644 index 000000000000..79b7f2be10c0 --- /dev/null +++ b/ibm-semeru-runtimes/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ibm-semeru-runtimes/metadata.json b/ibm-semeru-runtimes/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/ibm-semeru-runtimes/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/ibmjava/README.md b/ibmjava/README.md index 77c4dd13a8ab..8ab9364dbead 100644 --- a/ibmjava/README.md +++ b/ibmjava/README.md @@ -24,9 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8-jre`, `jre`, `8`, `latest`](https://github.com/ibmruntimes/ci.docker/blob/f4a01abd4ded9aae1455ec1022fb6471d4954291/ibmjava/8/jre/ubuntu/Dockerfile) -- [`8-sfj`, `sfj`](https://github.com/ibmruntimes/ci.docker/blob/f4a01abd4ded9aae1455ec1022fb6471d4954291/ibmjava/8/sfj/ubuntu/Dockerfile) -- [`8-sdk`, `sdk`](https://github.com/ibmruntimes/ci.docker/blob/f4a01abd4ded9aae1455ec1022fb6471d4954291/ibmjava/8/sdk/ubuntu/Dockerfile) +- [`8-jre`, `jre`, `8`, `latest`](https://github.com/ibmruntimes/ci.docker/blob/9f1804904c83b71533e810b7605ad93970cb3938/ibmjava/8/jre/ubuntu/Dockerfile) + +- [`8-sfj`, `sfj`](https://github.com/ibmruntimes/ci.docker/blob/9f1804904c83b71533e810b7605ad93970cb3938/ibmjava/8/sfj/ubuntu/Dockerfile) + +- [`8-sdk`, `sdk`](https://github.com/ibmruntimes/ci.docker/blob/9f1804904c83b71533e810b7605ad93970cb3938/ibmjava/8/sdk/ubuntu/Dockerfile) # Quick reference (cont.) diff --git a/ibmjava/metadata.json b/ibmjava/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/ibmjava/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/influxdb/README-short.txt b/influxdb/README-short.txt index a33232c98b90..ff66a43d2008 100644 --- a/influxdb/README-short.txt +++ b/influxdb/README-short.txt @@ -1 +1 @@ -InfluxDB is an open source time series database for recording metrics, events, and analytics. +InfluxDB is the open source time series database built for real-time analytic workloads. diff --git a/influxdb/README.md b/influxdb/README.md index fb768853b309..42e1545d9884 100644 --- a/influxdb/README.md +++ b/influxdb/README.md @@ -24,233 +24,188 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.8`, `1.8.10`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.8/Dockerfile) -- [`1.8-alpine`, `1.8.10-alpine`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.8/alpine/Dockerfile) -- [`1.9-data`, `1.9.13-data`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.9/data/Dockerfile) -- [`1.9-data-alpine`, `1.9.13-data-alpine`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.9/data/alpine/Dockerfile) -- [`1.9-meta`, `1.9.13-meta`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.9/meta/Dockerfile) -- [`1.9-meta-alpine`, `1.9.13-meta-alpine`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.9/meta/alpine/Dockerfile) -- [`1.10-data`, `1.10.5-data`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.10/data/Dockerfile) -- [`1.10-data-alpine`, `1.10.5-data-alpine`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.10/data/alpine/Dockerfile) -- [`1.10-meta`, `1.10.5-meta`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.10/meta/Dockerfile) -- [`1.10-meta-alpine`, `1.10.5-meta-alpine`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.10/meta/alpine/Dockerfile) -- [`1.11-data`, `1.11.3-data`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.11/data/Dockerfile) -- [`1.11-data-alpine`, `1.11.3-data-alpine`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.11/data/alpine/Dockerfile) -- [`1.11-meta`, `1.11.3-meta`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.11/meta/Dockerfile) -- [`1.11-meta-alpine`, `1.11.3-meta-alpine`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/1.11/meta/alpine/Dockerfile) -- [`2.7`, `2.7.4`, `latest`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/2.7/Dockerfile) -- [`2.7-alpine`, `2.7.4-alpine`, `alpine`](https://github.com/influxdata/influxdata-docker/blob/577416b29d72aa5b7199c4c67702448152219d78/influxdb/2.7/alpine/Dockerfile) +- [`1.11`, `1.11.8`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.11/Dockerfile) -# Quick reference (cont.) +- [`1.11-alpine`, `1.11.8-alpine`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.11/alpine/Dockerfile) -- **Where to file issues**: - [https://github.com/influxdata/influxdata-docker/issues](https://github.com/influxdata/influxdata-docker/issues?q=) +- [`1.10-data`, `1.10.8-data`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.10/data/Dockerfile) -- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/influxdb/), [`arm32v7`](https://hub.docker.com/r/arm32v7/influxdb/), [`arm64v8`](https://hub.docker.com/r/arm64v8/influxdb/) +- [`1.10-data-alpine`, `1.10.8-data-alpine`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.10/data/alpine/Dockerfile) -- **Published image artifact details**: - [repo-info repo's `repos/influxdb/` directory](https://github.com/docker-library/repo-info/blob/master/repos/influxdb) ([history](https://github.com/docker-library/repo-info/commits/master/repos/influxdb)) - (image metadata, transfer size, etc) +- [`1.10-meta`, `1.10.8-meta`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.10/meta/Dockerfile) -- **Image updates**: - [official-images repo's `library/influxdb` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Finfluxdb) - [official-images repo's `library/influxdb` file](https://github.com/docker-library/official-images/blob/master/library/influxdb) ([history](https://github.com/docker-library/official-images/commits/master/library/influxdb)) +- [`1.10-meta-alpine`, `1.10.8-meta-alpine`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.10/meta/alpine/Dockerfile) -- **Source of this description**: - [docs repo's `influxdb/` directory](https://github.com/docker-library/docs/tree/master/influxdb) ([history](https://github.com/docker-library/docs/commits/master/influxdb)) - -# InfluxDB +- [`1.11-data`, `1.11.8-data`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.11/data/Dockerfile) -InfluxDB is a time series database built from the ground up to handle high write and query loads. InfluxDB is meant to be used as a backing store for any use case involving large amounts of timestamped data, including DevOps monitoring, application metrics, IoT sensor data, and real-time analytics. +- [`1.11-data-alpine`, `1.11.8-data-alpine`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.11/data/alpine/Dockerfile) -[InfluxDB Documentation](https://docs.influxdata.com/influxdb/latest/) +- [`1.11-meta`, `1.11.8-meta`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.11/meta/Dockerfile) -![logo](https://raw.githubusercontent.com/docker-library/docs/43d87118415bb75d7bb107683e79cd6d69186f67/influxdb/logo.png) +- [`1.11-meta-alpine`, `1.11.8-meta-alpine`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/1.11/meta/alpine/Dockerfile) -## Using this Image - InfluxDB 2.x +- [`2`, `2.7`, `2.7.12`, `latest`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/2.7/Dockerfile) -### Quick start +- [`2-alpine`, `2.7-alpine`, `2.7.11-alpine`, `alpine`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/2.7/alpine/Dockerfile) -Using this image is pretty easy, but there are a few things you should know. +- [`3-core`, `3.1-core`, `3.1.0-core`, `core`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/3.1-core/Dockerfile) -- You should forward TCP port 8086 -- You should mount a volume in /var/lib/influxdb2 +- [`3-enterprise`, `3.1-enterprise`, `3.1.0-enterprise`, `enterprise`](https://github.com/influxdata/influxdata-docker/blob/063caa0d729da41b70760c8f7362345f1bb79779/influxdb/3.1-enterprise/Dockerfile) -```console -$ docker run \ - -p 8086:8086 \ - -v myInfluxVolume:/var/lib/influxdb2 \ - influxdb:latest -``` +# Quick reference (cont.) -After starting the container you can use the web interface at http://localhost:8086/ to setup and customize your Influx database. +- **Where to file issues**: + [https://github.com/influxdata/influxdata-docker/issues](https://github.com/influxdata/influxdata-docker/issues?q=) -Find more about API Endpoints & Ports [here](https://docs.influxdata.com/influxdb/v2.5/reference/api/). +- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) + [`amd64`](https://hub.docker.com/r/amd64/influxdb/), [`arm64v8`](https://hub.docker.com/r/arm64v8/influxdb/) -### Configuration +- **Published image artifact details**: + [repo-info repo's `repos/influxdb/` directory](https://github.com/docker-library/repo-info/blob/master/repos/influxdb) ([history](https://github.com/docker-library/repo-info/commits/master/repos/influxdb)) + (image metadata, transfer size, etc) -InfluxDB can be configured using a mix of a config file, environment variables, and CLI options. To mount a configuration file and use it with the server, you can use this command to generate the default configuration file: +- **Image updates**: + [official-images repo's `library/influxdb` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Finfluxdb) + [official-images repo's `library/influxdb` file](https://github.com/docker-library/official-images/blob/master/library/influxdb) ([history](https://github.com/docker-library/official-images/commits/master/library/influxdb)) -```console -$ docker run --rm influxdb:2.0 influxd print-config > config.yml -``` +- **Source of this description**: + [docs repo's `influxdb/` directory](https://github.com/docker-library/docs/tree/master/influxdb) ([history](https://github.com/docker-library/docs/commits/master/influxdb)) -Modify the default configuration, which will now be available under `$PWD`. Then start the InfluxDB container: +# What is InfluxDB? -```console -$ docker run -p 8086:8086 \ - -v $PWD/config.yml:/etc/influxdb2/config.yml \ - influxdb:2.0 -``` +InfluxDB is the time series data platform designed to handle high write and query workloads. Using InfluxDB, you can collect, store, and process large amounts of timestamped data, including metrics and events for use cases such as DevOps monitoring, application metrics, IoT sensors, and event monitoring. -Modify `$PWD` to be the directory where you want to store the configuration file. +Use the InfluxDB Docker Hub image to write, query, and process time series data in [InfluxDB v2](https://docs.influxdata.com/influxdb/v2/) or [InfluxDB v1](https://docs.influxdata.com/influxdb/v1/). -Individual config settings can be overridden by environment variables. The variables must be named using the format `INFLUXD_${SNAKE_CASE_NAME}`. The `SNAKE_CASE_NAME` for an option will be the option's name with all dashes (`-`) replaced by underscores (`_`), in all caps. +For more information, visit https://influxdata.com. -Examples: +![logo](https://raw.githubusercontent.com/docker-library/docs/43d87118415bb75d7bb107683e79cd6d69186f67/influxdb/logo.png) -```console -# Config setting: bolt-path -INFLUXD_BOLT_PATH=/root/influxdb.bolt -# Config setting: no-tasks -INFLUXD_NO_TASKS=true -# Config setting: storage-wal-fsync-delay -INFLUXD_STORAGE_WAL_FSYNC_DELAY=15m -``` +# How to use this image for InfluxDB v2 -Finally, all config options can be passed as CLI options: +**Quick start**: See the guide to [Install InfluxDB v2 for Docker](https://docs.influxdata.com/influxdb/v2/install/?t=Docker) and get started using InfluxDB v2. -```console -$ docker run -p 8086:8086 \ - influxdb:2.0 --storage-wal-fsync-delay=15m -``` +## Start InfluxDB v2 and set up with the UI, CLI, or API -CLI options take precedence over environment variables. +To start an InfluxDB v2 container, enter the following command: -Find more about configuring InfluxDB [here](https://docs.influxdata.com/influxdb/v2.0/reference/config-options/). +```bash +docker run \ + -p 8086:8086 \ + -v "$PWD/data:/var/lib/influxdb2" \ + -v "$PWD/config:/etc/influxdb2" \ + influxdb:2 +``` -### Database Setup +Replace the following with your own values: -InfluxDB 2.x requires authentication. A special API exists to bootstrap the first super-user in the database, along with an initial organization and bucket. It's possible to access this API manually, or to run it automatically via environment variables. +- `$PWD/data`: A host directory to mount at the container's [InfluxDB data directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) path +- `$PWD/config`: A host directory to mount at the container's [InfluxDB configuration directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) path -#### Manual Setup +After the container starts, the InfluxDB UI and API are accessible at http://localhost:8086 on the host. You're ready to set up an initial admin user, token, and bucket from outside or inside the container--choose one of the following: -If your InfluxDB container is running locally (or on a host exposed to the network), you can perform initial setup from outside the container using either the UI or the `influx` CLI. Find more about setting up InfluxDB using these methods [here](https://docs.influxdata.com/influxdb/v2.0/get-started/#set-up-influxdb). +- **Set up InfluxDB from outside the container**: [Set up InfluxDB](https://docs.influxdata.com/influxdb/v2/get-started/setup/) from the host or network using the InfluxDB UI, `influx` CLI, or HTTP API. -It's also possible to perform manual setup from within the container using `docker exec`. For example, if you start the container: +- **Set up InfluxDB from inside the container**: Use `docker exec` to run the `influx` CLI installed in the container--for example: -```console -$ docker run -d -p 8086:8086 \ - --name influxdb2 \ - -v $PWD:/var/lib/influxdb2 \ - influxdb:2.0 -``` + ```bash + docker exec influxdb2 influx setup \ + --username $USERNAME \ + --password $PASSWORD \ + --org $ORGANIZATION \ + --bucket $BUCKET \ + --force + ``` -You can then run the `influx` client in the container: +See the [`influx setup` documentation](https://docs.influxdata.com/influxdb/v2/reference/cli/influx/setup/) for the full list of options. -```console -$ docker exec influxdb2 influx setup \ - --username $USERNAME \ - --password $PASSWORD \ - --org $ORGANIZATION \ - --bucket $BUCKET \ - --force -``` +*If you run setup from within the container, InfluxDB stores `influx` CLI [connection configurations](/influxdb/v2/reference/cli/influx/#provide-required-authentication-credentials) in the container's `/etc/influxdb2/influx-configs` file.* -Running setup from within the container will cause CLI configs to be written to `/etc/influxdb2/influx-configs`. You can then use the `influx` CLI from within the container to extract the generated admin token: +## Start InfluxDB v2 with automated setup -```console -# Using table output + cut -$ docker exec influxdb2 influx auth list \ - --user $USERNAME \ - --hide-headers | cut -f 3 +To start and set up InfluxDB v2 with a single command, specify `-e DOCKER_INFLUXDB_INIT_MODE=setup` and `-e DOCKER_INFLUXDB_INIT_` environment variables for the initial user, password, bucket, and organization--for example: -# Using JSON output + jq -$ docker exec influxdb2 influx auth list \ - --user $USERNAME \ - --json | jq -r '.[].token' +```bash +docker run -d -p 8086:8086 \ + -v "$PWD/data:/var/lib/influxdb2" \ + -v "$PWD/config:/etc/influxdb2" \ + -e DOCKER_INFLUXDB_INIT_MODE=setup \ + -e DOCKER_INFLUXDB_INIT_USERNAME= \ + -e DOCKER_INFLUXDB_INIT_PASSWORD= \ + -e DOCKER_INFLUXDB_INIT_ORG= \ + -e DOCKER_INFLUXDB_INIT_BUCKET= \ + influxdb:2 ``` -Alternatively, you could configure your initial InfluxDB run to mount `/etc/influxdb2` as a volume: +Replace the following with your own values: -```console -$ docker run -d -p 8086:8086 \ - --name influxdb2 \ - -v $PWD/data:/var/lib/influxdb2 \ - -v $PWD/config:/etc/influxdb2 \ - influxdb:2.0 -``` +- `$PWD/data`: A host directory to mount at the container's [InfluxDB data directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) path +- `$PWD/config`: A host directory to mount at the container's [InfluxDB configuration directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) path +- ``: A name for your initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/) +- ``: A password for your initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/) +- ``: A name for your initial [organization](https://docs.influxdata.com/influxdb/v2/admin/organizations/) +- ``: A name for your initial [bucket](https://docs.influxdata.com/influxdb/v2/admin/buckets/) (database) -This will make the generated CLI configs available to the host. +*If you run setup from within the container, InfluxDB stores `influx` CLI [connection configurations](/influxdb/v2/reference/cli/influx/#provide-required-authentication-credentials) in the container's `/etc/influxdb2/influx-configs` file.* -#### Automated Setup +### Automated setup options -The InfluxDB image contains some extra functionality to automatically bootstrap the system. This functionality is enabled by setting the `DOCKER_INFLUXDB_INIT_MODE` environment variable to the value `setup` when running the container. Additional environment variables are used to configure the setup logic: +In setup mode (`DOCKER_INFLUXDB_INIT_MODE=setup`) or upgrade mode (`DOCKER_INFLUXDB_INIT_MODE=upgrade`), you can specify the following Docker-specific environment variables to provide initial setup values: -- `DOCKER_INFLUXDB_INIT_USERNAME`: The username to set for the system's initial super-user (**Required**). -- `DOCKER_INFLUXDB_INIT_PASSWORD`: The password to set for the system's inital super-user (**Required**). -- `DOCKER_INFLUXDB_INIT_ORG`: The name to set for the system's initial organization (**Required**). -- `DOCKER_INFLUXDB_INIT_BUCKET`: The name to set for the system's initial bucket (**Required**). -- `DOCKER_INFLUXDB_INIT_RETENTION`: The duration the system's initial bucket should retain data. If not set, the initial bucket will retain data forever. -- `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`: The authentication token to associate with the system's initial super-user. If not set, a token will be auto-generated by the system. +- `DOCKER_INFLUXDB_INIT_USERNAME`: A name for your initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/). +- `DOCKER_INFLUXDB_INIT_PASSWORD`: A password for your initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/). +- `DOCKER_INFLUXDB_INIT_ORG`: A name for your initial [organization](https://docs.influxdata.com/influxdb/v2/admin/organizations/). +- `DOCKER_INFLUXDB_INIT_BUCKET`: A name for your initial [bucket](https://docs.influxdata.com/influxdb/v2/admin/buckets/). +- Optional: `DOCKER_INFLUXDB_INIT_RETENTION`: A [duration](https://docs.influxdata.com/influxdb/v2/reference/glossary/#duration) to use as the initial bucket's [retention period](https://docs.influxdata.com/influxdb/v2/reference/internals/data-retention/#bucket-retention-period). Default: `0` (infinite; doesn't delete data). +- Optional: `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`: A string value to set for the [Operator token](https://docs.influxdata.com/influxdb/v2/admin/tokens/#operator-token). Default: a generated token. -Automated setup will generate metadata files and CLI configurations. It's recommended to mount volumes at both paths to avoid losing data. +The following example shows how to pass values for all initial setup options: -For example, a minimal invocation of automated setup is: - -```console -$ docker run -d -p 8086:8086 \ - -v $PWD/data:/var/lib/influxdb2 \ - -v $PWD/config:/etc/influxdb2 \ - -e DOCKER_INFLUXDB_INIT_MODE=setup \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - influxdb:2.0 +```bash +docker run -d -p 8086:8086 \ + -v "$PWD/data:/var/lib/influxdb2" \ + -v "$PWD/config:/etc/influxdb2" \ + -e DOCKER_INFLUXDB_INIT_MODE=setup \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + -e DOCKER_INFLUXDB_INIT_RETENTION=1w \ + -e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-auth-token \ + influxdb:2 ``` -And an example using all available options is: +*To upgrade from InfluxDB 1.x to InfluxDB 2.x, see the **Upgrading from InfluxDB 1.x** section below.\* -```console -$ docker run -d -p 8086:8086 \ - -v $PWD/data:/var/lib/influxdb2 \ - -v $PWD/config:/etc/influxdb2 \ - -e DOCKER_INFLUXDB_INIT_MODE=setup \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - -e DOCKER_INFLUXDB_INIT_RETENTION=1w \ - -e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-auth-token \ - influxdb:2.0 -``` +With InfluxDB set up and running, see the [Get started](https://docs.influxdata.com/influxdb/v2/get-started/) tutorial to create tokens and write and query data. -**NOTE:** Automated setup will not run if an existing boltdb file is found at the configured path. This behavior allows for the InfluxDB container to reboot post-setup without encountering "DB is already set up" errors. +### Custom Initialization Scripts -### Interacting with InfluxDB +In `setup` mode (`DOCKER_INFLUXDB_INIT_MODE=setup`) or `upgrade` mode (`DOCKER_INFLUXDB_INIT_MODE=upgrade`), the InfluxDB Docker Hub image supports running custom initialization scripts. After the setup process completes, scripts are executed in lexical sort order by name. -Once an InfluxDB instance has completed initial setup, its APIs will unlock. See the main documentation site for reference information and examples on: +For the container to run scripts, they must: -- [Writing data](https://docs.influxdata.com/influxdb/v2.0/write-data/) -- [Reading data](https://docs.influxdata.com/influxdb/v2.0/query-data/) -- [Configuring security](https://docs.influxdata.com/influxdb/v2.0/security/) -- [And more!](https://docs.influxdata.com/influxdb/v2.0/) +- Be mounted in the container's `/docker-entrypoint-initdb.d` directory +- Be named using the `.sh` file name extension +- Be executable by the user running the `docker run` command--for example, to allow the current use to execute a script with `docker run`: -### Custom Initialization Scripts + ```bash + chmod +x ./scripts/ + ``` -The InfluxDB image supports running arbitrary initialization scripts after initial system setup, on both the `setup` and `upgrade` paths. Scripts must have extension `.sh`, must have execute file permissions (`chmod +x `) and be mounted inside of the `/docker-entrypoint-initdb.d` directory. When multiple scripts are present, they will be executed in lexical sort order by name. +> #### Grant permissions to mounted files +> +> By default, Docker runs containers using the user and group IDs of the user executing the `docker run` command. When files are bind-mounted into the container, Docker preserves the user and group ownership from the host system. -As a convenience for script-writers, the image will export a number of variables into the environment before executing any scripts: +The image exports a number of variables into the environment before executing scripts. The following variables are available for you to use in your scripts: -- `INFLUX_CONFIGS_PATH`: Path to the CLI configs file written by `setup`/`upgrade` -- `INFLUX_HOST`: URL to the `influxd` instance running setup logic +- `INFLUX_CONFIGS_PATH`: Path to the `influx` CLI connection configurations file written by `setup`/`upgrade` +- `INFLUX_HOST`: URL to the `influxd` instance running `setup`/`upgrade` - `DOCKER_INFLUXDB_INIT_USER_ID`: ID of the initial admin user created by `setup`/`upgrade` - `DOCKER_INFLUXDB_INIT_ORG_ID`: ID of the initial organization created by `setup`/`upgrade` - `DOCKER_INFLUXDB_INIT_BUCKET_ID`: ID of the initial bucket created by `setup`/`upgrade` -For example, if you wanted to grant write-access to an InfluxDB 1.x client on your initial bucket, you'd first create the file `$PWD/scripts/setup-v1.sh` with contents: +For example, to grant an InfluxDB 1.x client *write* permission to your initial bucket, create a `$PWD/scripts/setup-v1.sh` file that contains the following: ```bash #!/bin/bash @@ -270,271 +225,372 @@ influx v1 auth create \ --org ${DOCKER_INFLUXDB_INIT_ORG} ``` -Then you'd run: +Then, run the following command to start and set up InfluxDB using custom scripts: -```console -$ docker run -p 8086:8086 \ - -v $PWD/data:/var/lib/influxdb2 \ - -v $PWD/config:/etc/influxdb2 \ - -v $PWD/scripts:/docker-entrypoint-initdb.d \ - -e DOCKER_INFLUXDB_INIT_MODE=setup \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - -e V1_DB_NAME=v1-db \ - -e V1_RP_NAME=v1-rp \ - -e V1_AUTH_USERNAME=v1-user \ - -e V1_AUTH_PASSWORD=v1-password \ - influxdb:2.0 -``` - -**NOTE:** Custom scripts will not run if an existing boltdb file is found at the configured path (causing `setup` or `upgrade` to be skipped). This behavior allows for the InfluxDB container to reboot post-initialization without encountering errors from non-idempotent script commands. +```bash +docker run -p 8086:8086 \ + -v "$PWD/data:/var/lib/influxdb2" \ + -v "$PWD/config:/etc/influxdb2" \ + -v "$PWD/scripts:/docker-entrypoint-initdb.d" \ + -e DOCKER_INFLUXDB_INIT_MODE=setup \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + -e V1_DB_NAME=v1-db \ + -e V1_RP_NAME=v1-rp \ + -e V1_AUTH_USERNAME=v1-user \ + -e V1_AUTH_PASSWORD=v1-password \ + influxdb:2 +``` + +> #### Automated setup and upgrade ignored if already setup +> +> Automated `setup`, `upgrade`, and custom initialization scripts won't run if an existing `influxd.bolt` boltdb file from a previous setup is found in the configured data directory. +> +> This behavior allows for the InfluxDB container to reboot post-setup and avoid overwriting migrated data, `DB is already set up` errors, and errors from non-idempotent script commands. + +## Access InfluxDB v2 file system and ports + +When starting an InfluxDB container, we recommend the following for easy access to your data, configurations, and InfluxDB v2 instance: + +- Publish the container's `8086` port to make the InfluxDB [UI](https://docs.influxdata.com/influxdb/v2/get-started/#influxdb-user-interface-ui) and [HTTP API](https://docs.influxdata.com/influxdb/v2/reference/api/) accessible from the host system. +- Use Docker [Volumes](https://docs.docker.com/storage/volumes/) or [Bind mounts](https://docs.docker.com/storage/bind-mounts/) to persist InfluxDB [data and configuration directories](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) outside of containers. + +### Default file system and networking ports + +For InfluxDB v2, the InfluxDB Docker Hub image uses the following default ports and file system paths: + +- TCP port `8086`: the default port for the InfluxDB [UI](https://docs.influxdata.com/influxdb/v2/get-started/#influxdb-user-interface-ui) and [HTTP API](https://docs.influxdata.com/influxdb/v2/reference/api/). To specify a different port or address, use the [`http-bind-address` configuration option](https://docs.influxdata.com/influxdb/v2/reference/config-options/#http-bind-address). +- `/var/lib/influxdb2/`: the [InfluxDB data directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) + + - `/engine/`: Default InfluxDB [Storage engine path](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/#engine-path) + - `influxd.bolt`: Default [Bolt path](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/#bolt-path) + - `influxd.sqlite`: Default [SQLite path](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/#sqlite-path) + +- `/etc/influxdb2`: the [InfluxDB configuration directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) + + - `/etc/influxdb2/configs`: `influx` CLI connection configurations file + - `/etc/influxdb2/influx-configs`: `influx` CLI connection configurations file, *if you run setup from within the container* + - Optional: `/etc/influxdb2/config.[yml, json, toml]`: Your customized InfluxDB [configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/) file + +### Configure InfluxDB v2 in a container + +To customize InfluxDB, specify [server configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/#configuration-options) in a configuration file, environment variables, or command line flags. + +#### Use a configuration file + +To customize and mount an InfluxDB configuration file, do the following: + +1. If you haven't already, [set up InfluxDB](https://docs.influxdata.com/influxdb/v2/get-started/setup/) to initialize an API [Operator token](https://docs.influxdata.com/influxdb/v2/admin/tokens/#operator-token). You'll need the Operator token in the next step. + +2. Run the `influx server-config` CLI command to output the current server configuration to a file in the mounted configuration directory--for example, enter the following command to use the container's `influx` CLI and default Operator token: + + ```bash + docker exec -it influxdb2 influx server-config > "$PWD/config/config.yml" + ``` + +Replace `$PWD/config/` with the host directory that you mounted at the container's `/etc/influxdb2` InfluxDB configuration directory path. + +1. Edit the `config.yml` file to customize [server configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/#configuration-options). +2. Restart the container. + + ```bash + docker restart influxdb2 + ``` + +#### Use environment variables and command line flags + +To override specific [configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/#configuration-options), use environment variables or command line flags. + +- Pass `INFLUXD_` environment variables to Docker to override the configuration file--for example: + + ```bash + docker run -p 8086:8086 \ + -e INFLUXD_STORAGE_WAL_FSYNC_DELAY=15m \ + influxdb:2 + ``` + +- Pass `influxd` command line flags to override environment variables and the configuration file--for example: + + ```bash + docker run -p 8086:8086 \ + influxdb:2 --storage-wal-fsync-delay=15m + ``` + +To learn more, see [InfluxDB configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options). ### Upgrading from InfluxDB 1.x -InfluxDB 2.x provides a 1.x-compatible API, but expects a different storage layout on disk. To bridge this mismatch, the InfluxDB image contains extra functionality to migrate 1.x data and config into 2.x layouts automatically before booting the `influxd` server. +InfluxDB 2.x provides a [1.x-compatible API](https://docs.influxdata.com/influxdb/v2/reference/api/influxdb-1x/), but expects a different storage layout on disk. To account for these differences, the InfluxDB Docker Hub image provides an `upgrade` feature that migrates 1.x data and configuration to 2.x before starting the `influxd` server. -The automated upgrade process bootstraps an initial admin user, organization, and bucket in the system. Additional environment variables are used to configure the setup logic: +The automated upgrade process creates the following in the InfluxDB v2 container: -- `DOCKER_INFLUXDB_INIT_USERNAME`: The username to set for the system's initial super-user (**Required**). -- `DOCKER_INFLUXDB_INIT_PASSWORD`: The password to set for the system's inital super-user (**Required**). -- `DOCKER_INFLUXDB_INIT_ORG`: The name to set for the system's initial organization (**Required**). -- `DOCKER_INFLUXDB_INIT_BUCKET`: The name to set for the system's initial bucket (**Required**). -- `DOCKER_INFLUXDB_INIT_RETENTION`: The duration the system's initial bucket should retain data. If not set, the initial bucket will retain data forever. -- `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`: The authentication token to associate with the system's initial super-user. If not set, a token will be auto-generated by the system. +- an initial admin user +- an initial organization +- an initial bucket +- InfluxDB v2 data files (the default path is `/var/lib/influxdb2`) +- InfluxDB v2 configuration files (the default path is `/etc/influxdb2`) -It also requires extra volumes to be mounted into the 2.x container: +*Mount volumes at both paths to avoid losing data.* -- Data from the 1.x instance -- Custom config from the 1.x instance (if any) +To run the automated upgrade, specify the following when you start the container: -The upgrade process searches for mounted 1.x data / config in this priority order: +- InfluxDB v2 initialization environment variables: -1. A config file referred to by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG` environment variable -2. A data directory referred to by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_DIR` environment variable -3. A config file mounted at `/etc/influxdb/influxdb.conf` -4. A data directory mounted at `/var/lib/influxdb` + - `DOCKER_INFLUXDB_INIT_MODE=upgrade` + - `DOCKER_INFLUXDB_INIT_USERNAME`: A name for the initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/) + - `DOCKER_INFLUXDB_INIT_PASSWORD`: A password for the initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/) + - `DOCKER_INFLUXDB_INIT_ORG`: A name for the initial [organization](https://docs.influxdata.com/influxdb/v2/admin/organizations/) + - `DOCKER_INFLUXDB_INIT_BUCKET`: A name for the initial [bucket](https://docs.influxdata.com/influxdb/v2/admin/buckets/) + - Optional: `DOCKER_INFLUXDB_INIT_RETENTION`: A [duration](https://docs.influxdata.com/influxdb/v2/reference/glossary/#duration) for the bucket [retention period](https://docs.influxdata.com/influxdb/v2/reference/internals/data-retention/#bucket-retention-period). Default: `0` (infinite; doesn't delete data) + - Optional: `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`: A value to set for the [Operator token](https://docs.influxdata.com/influxdb/v2/admin/tokens/#operator-token). Default: generates a token. -Finally, the `DOCKER_INFLUXDB_INIT_MODE` environment variable must be set to `upgrade`. +- 1.x data and configuration paths: -Automated upgrade will generate both data and config files, by default under `/var/lib/influxdb2` and `/etc/influxdb2`. It's recommended to mount volumes at both paths to avoid losing data. + - A 1.x data volume, specified by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_DIR` environment variable or mounted at `/var/lib/influxdb` + - Optional: a 1.x custom configuration file, specified by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG` environment variable or mounted at `/etc/influxdb/influxdb.conf` -**NOTE:** Automated upgrade will not run if an existing boltdb file is found at the configured path. This behavior allows for the InfluxDB container to reboot post-upgrade without overwriting migrated data. +The upgrade process searches for mounted 1.x data and configuration paths in the following order of precedence: -Find more about the InfluxDB upgrade process [here](https://docs.influxdata.com/influxdb/v2.0/upgrade/v1-to-v2/). See below for examples of common upgrade scenarios. +1. A configuration file referenced by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG` environment variable +2. A data directory referenced by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_DIR` environment variable +3. A configuration file mounted at `/etc/influxdb/influxdb.conf` +4. A data directory mounted at `/var/lib/influxdb` + +> #### Automated setup and upgrade ignored if already setup +> +> Automated `setup`, `upgrade`, and custom initialization scripts won't run if an existing `influxd.bolt` boltdb file from a previous setup is found in the configured data directory. +> +> This behavior allows for the InfluxDB container to reboot post-setup and avoid overwriting migrated data, `DB is already set up` errors, and errors from non-idempotent script commands. -#### Upgrade Example - Minimal +#### Upgrade InfluxDB 1.x: default data path and configuration Assume you've been running a minimal InfluxDB 1.x deployment: -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - influxdb:1.8 +```bash +docker run -p 8086:8086 \ + -v influxdb:/var/lib/influxdb \ + influxdb:1.8 ``` -To upgrade this deployment to InfluxDB 2.x, stop the running InfluxDB 1.x container, then run: +To upgrade this deployment to InfluxDB 2.x, stop the running InfluxDB 1.x container, and then run the following command: -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - -v influxdb2:/var/lib/influxdb2 \ - -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - influxdb:2.0 +```bash +docker run -p 8086:8086 \ + -v influxdb:/var/lib/influxdb \ + -v influxdb2:/var/lib/influxdb2 \ + -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + influxdb:2 ``` -#### Upgrade Example - Custom InfluxDB 1.x Config +#### Upgrade InfluxDB 1.x: custom configuration -Assume you've been running an InfluxDB 1.x deployment with customized config: +Assume you've been running an InfluxDB 1.x deployment with customized configuration (`/etc/influxdb/influxdb.conf`): -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf \ - influxdb:1.8 +```bash +docker run -p 8086:8086 \ + -v influxdb:/var/lib/influxdb \ + -v "$PWD/influxdb.conf:/etc/influxdb/influxdb.conf" \ + influxdb:1.8 ``` -To upgrade this deployment to InfluxDB 2.x, stop the running container, then run: +To upgrade this deployment to InfluxDB 2.x, stop the running InfluxDB 1.x container, and then run the following command: -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - -v influxdb2:/var/lib/influxdb2 \ - -v influxdb2-config:/etc/influxdb2 \ - -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf \ - -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - influxdb:2.0 +```bash +docker run -p 8086:8086 \ + -v influxdb:/var/lib/influxdb \ + -v influxdb2:/var/lib/influxdb2 \ + -v influxdb2-config:/etc/influxdb2 \ + -v "$PWD/influxdb.conf:/etc/influxdb/influxdb.conf" \ + -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + influxdb:2 ``` -#### Upgrade Example - Custom Paths +#### Upgrade InfluxDB 1.x: custom data and configuration paths -Assume you've been running an InfluxDB 1.x deployment with data and config mounted at custom paths: +Assume you've been running an InfluxDB 1.x deployment with data and configuration mounted at custom paths: -```console -$ docker run -p 8086:8086 \ - -v influxdb:/root/influxdb/data \ - -v $PWD/influxdb.conf:/root/influxdb/influxdb.conf \ - influxdb:1.8 -config /root/influxdb/influxdb.conf +```bash +docker run -p 8086:8086 \ + -v influxdb:/root/influxdb/data \ + -v "$PWD/influxdb.conf:/root/influxdb/influxdb.conf" \ + influxdb:1.8 -config /root/influxdb/influxdb.conf ``` -To upgrade this deployment to InfluxDB 2.x, first decide if you'd like to keep using custom paths, or use the InfluxDB 2.x defaults. If you decide to use the defaults, you'd stop the running InfluxDB 1.x container, then run: +Before you upgrade to InfluxDB v2, decide whether to keep using your custom paths or to use the InfluxDB v2 defaults. -```console -$ docker run -p 8086:8086 \ - -v influxdb:/root/influxdb/data \ - -v influxdb2:/var/lib/influxdb2 \ - -v influxdb2-config:/etc/influxdb2 \ - -v $PWD/influxdb.conf:/root/influxdb/influxdb.conf \ - -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - -e DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG=/root/influxdb/influxdb.conf \ - influxdb:2.0 -``` - -To retain your custom paths, you'd run: +To use InfluxDB v2 defaults, stop the running InfluxDB 1.x container, and then run the following command: -```console -$ docker run -p 8086:8086 \ - -v influxdb:/root/influxdb/data \ - -v influxdb2:/root/influxdb2/data \ - -v influxdb2-config:/etc/influxdb2 \ - -v $PWD/influxdb.conf:/root/influxdb/influxdb.conf \ - -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - -e DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG=/root/influxdb/influxdb.conf \ - -e DOCKER_INFLUXDB_CONFIG_PATH=/root/influxdb2/config.toml \ - -e DOCKER_INFLUXDB_BOLT_PATH=/root/influxdb2/influxdb.bolt \ - -e DOCKER_INFLUXDB_ENGINE_PATH=/root/influxdb2/engine \ - influxdb:2.0 +```bash +docker run -p 8086:8086 \ + -v influxdb:/root/influxdb/data \ + -v influxdb2:/var/lib/influxdb2 \ + -v influxdb2-config:/etc/influxdb2 \ + -v "$PWD/influxdb.conf:/root/influxdb/influxdb.conf" \ + -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + -e DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG=/root/influxdb/influxdb.conf \ + influxdb:2 ``` +To use your custom paths instead of InfluxDB v2 default paths, run the following command: + +```bash +docker run -p 8086:8086 \ + -v influxdb:/root/influxdb/data \ + -v influxdb2:/root/influxdb2/data \ + -v influxdb2-config:/etc/influxdb2 \ + -v "$PWD/influxdb.conf:/root/influxdb/influxdb.conf" \ + -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + -e DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG=/root/influxdb/influxdb.conf \ + -e DOCKER_INFLUXDB_CONFIG_PATH=/root/influxdb2/config.toml \ + -e DOCKER_INFLUXDB_BOLT_PATH=/root/influxdb2/influxdb.bolt \ + -e DOCKER_INFLUXDB_ENGINE_PATH=/root/influxdb2/engine \ + influxdb:2 +``` + +To learn more about the upgrade process, see the [v1-to-v2 upgrade guide](https://docs.influxdata.com/influxdb/v2.0/upgrade/v1-to-v2/). + ### Upgrading from quay.io-hosted InfluxDB 2.x image -Early Docker builds of InfluxDB 2.x were hosted at `quay.io/influxdb/influxdb`. The builds were very bare-bones, containing the `influx` and `influxd` binaries without any default configuration or helper scripts. By default, the `influxd` process stored data under `/root/.influxdbv2`. +Early Docker builds of InfluxDB 2.x were hosted at `quay.io/influxdb/influxdb` and contained the `influx` and `influxd` binaries without any default configuration or helper scripts. By default, the `influxd` process stored data in `/root/.influxdbv2`. -Starting with `v2.0.4`, we've restored our DockerHub build. This build defaults to storing data in `/var/lib/influxdb2`. Upgrading directly from `quay.io/influxdb/influxdb` to `influxdb:2.0.4` without modifying any settings will appear to cause data loss, as the new process won't be able to find your existing data files. +Starting with `v2.0.4`, we restored the InfluxDB Docker Hub build, which defaults to storing data in `/var/lib/influxdb2`. If you upgrade directly from `quay.io/influxdb/influxdb` to `influxdb:2.0.4` using the default settings, InfluxDB won't be able to find your existing data files. -To avoid this problem when migrating from `quay.io/influxdb/influxdb` to `influxdb:2.0`, you can use one of the following approaches. +To avoid this problem when migrating from `quay.io/influxdb/influxdb` to `influxdb:2.0`, choose one of the following: -#### Change volume mount point +#### Update the mount to use the InfluxDB default -If you don't mind using the new default path, you can switch the mount-point for the volume containing your data: +To use the InfluxDB Docker Hub data path, start a container that mounts your data volume into `/var/lib/influxdb2`--for example, if you used the following command to start the InfluxDB quay.io container: -```console -# Migrate from this: -$ docker run -p 8086:8086 \ - -v $PWD:/root/.influxdbv2 \ - quay.io/influxdb/influxdb:v2.0.3 +```bash +# quay.io InfluxDB 2.x container +docker run -p 8086:8086 \ + -v "$PWD:/root/.influxdbv2" \ + quay.io/influxdb/influxdb:v2.0.3 +``` + +Use this command to start an InfluxDB v2 Docker Hub container: -# To this: +```bash +# Docker Hub InfluxDB 2.x container docker run -p 8086:8086 \ - -v $PWD:/var/lib/influxdb2 \ - influxdb:2.0 + -v "$PWD:/var/lib/influxdb2" \ + influxdb:2 ``` -#### Override default configs +#### Configure InfluxDB to use the container home directory -If you'd rather keep your data files in the home directory, you can override the container's default config: +To continue using the `/root/.influxdbv2` data path, customize storage path configuration options ([bolt-path](https://docs.influxdata.com/influxdb/v2/reference/config-options/#bolt-path), [engine-path](https://docs.influxdata.com/influxdb/v2/reference/config-options/#engine-path), [sqlite-path](https://docs.influxdata.com/influxdb/v2/reference/config-options/#sqlite-path)) configuration options for your InfluxDB Docker Hub container--for example, if you used the following command to start the InfluxDB quay.io container: -```console -# Migrate from this: -$ docker run -p 8086:8086 \ - -v $PWD:/root/.influxdbv2 \ - quay.io/influxdb/influxdb:v2.0.3 +```bash +# quay.io-hosted InfluxDB 2.x +docker run -p 8086:8086 \ + -v "$PWD:/root/.influxdbv2" \ + quay.io/influxdb/influxdb:v2.0.3 +``` -# To this: +Use this command to start an InfluxDB v2 Docker Hub container: + +```bash docker run -p 8086:8086 \ - -e INFLUXD_BOLT_PATH=/root/.influxdbv2/influxd.bolt \ - -e INFLUXD_ENGINE_PATH=/root/.influxdbv2/engine \ - -v $PWD:/root/.influxdbv2 \ - influxdb:2.0 + -e INFLUXD_BOLT_PATH=/root/.influxdbv2/influxd.bolt \ + -e INFLUXD_ENGINE_PATH=/root/.influxdbv2/engine \ + -v "$PWD:/root/.influxdbv2" \ + influxdb:2 ``` -See the section about configuration below for more ways to override the data paths. +# How to use this image for InfluxDB v1 -## Using this Image - InfluxDB 1.x +Use the InfluxDB Docker Hub image to run and set up an [InfluxDB 1.x](https://docs.influxdata.com/influxdb/v1/) container. -### Running the container +## Running the container -The InfluxDB image exposes a shared volume under `/var/lib/influxdb`, so you can mount a host directory to that point to access persisted container data. A typical invocation of the container might be: +To start an InfluxDB 1.x container, enter the following command: -```console -$ docker run -p 8086:8086 \ - -v $PWD:/var/lib/influxdb \ - influxdb:1.8 +```bash +docker run -p 8086:8086 \ + -v "$PWD:/var/lib/influxdb" \ + influxdb:1.8 ``` -Modify `$PWD` to the directory where you want to store data associated with the InfluxDB container. +The command passes the following arguments: -You can also have Docker control the volume mountpoint by using a named volume. +- `-p 8086:8086`: Exposes the InfluxDB [HTTP API](https://docs.influxdata.com/influxdb/v2/reference/api/) on host port `8086`. +- `-v $PWD:/var/lib/influxdb`: Mounts the host's `$PWD` directory to the [InfluxDB data directory](https://docs.influxdata.com/influxdb/v1/concepts/file-system-layout/) to persist data outside the container. -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - influxdb:1.8 -``` +Replace `$PWD` with the host directory where you want InfluxDB to store data. -### Exposed Ports +*Use Docker [Volumes](https://docs.docker.com/storage/volumes/) or [Bind mounts](https://docs.docker.com/storage/bind-mounts/) to persist InfluxDB [data and configuration directories](https://docs.influxdata.com/influxdb/v1/concepts/file-system-layout/).* -The following ports are important and are used by InfluxDB. +## Networking ports -- 8086 HTTP API port -- 2003 Graphite support, if it is enabled +InfluxDB uses the following networking ports: -The HTTP API port will be automatically exposed when using `docker run -P`. +- TCP port `8086`: the default port for the [HTTP API](https://docs.influxdata.com/influxdb/v1/tools/api/) +- TCP port `2003`: the port for the Graphite protocol (if enabled) -### Configuration +Using the `docker run` [`-P, --publish-all` flag](https://docs.docker.com/reference/cli/docker/container/run/#publish-all) exposes the InfluxDB HTTP API to the host. -InfluxDB can be either configured from a config file or using environment variables. To mount a configuration file and use it with the server, you can use this command: +## Configure InfluxDB v1 in a container -Generate the default configuration file: +To configure InfluxDB v1 in a container, use a configuration file or environment variables. -```console -$ docker run --rm influxdb:1.8 influxd config > influxdb.conf -``` +### Use a configuration file -Modify the default configuration, which will now be available under `$PWD`. Then start the InfluxDB container. +To customize and mount a configuration file, do the following: -```console -$ docker run -p 8086:8086 \ - -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro \ - influxdb:1.8 -config /etc/influxdb/influxdb.conf -``` +1. Output the current server configuration to a file in the mounted configuration directory--for example: -Modify `$PWD` to the directory where you want to store the configuration file. + ```bash + docker run --rm influxdb:1.8 influxd config > influxdb.conf + ``` -For environment variables, the format is `INFLUXDB_$SECTION_$NAME`. All dashes (`-`) are replaced with underscores (`_`). If the variable isn't in a section, then omit that part. +2. Edit the `influxdb.conf` file to customize [server configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/#configuration-options). -Examples: + ```bash + docker run -p 8086:8086 \ + -v "$PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro" \ + influxdb:1.8 -config /etc/influxdb/influxdb.conf + ``` -```console -INFLUXDB_REPORTING_DISABLED=true -INFLUXDB_META_DIR=/path/to/metadir -INFLUXDB_DATA_QUERY_LOG_ENABLED=false + Replace `$PWD` with the host directory where you want to store the configuration file. + +### Use environment variables + +Pass [`INFLUXDB_` environment variables](https://docs.influxdata.com/influxdb/v1/administration/config/#environment-variables) to override specific InfluxDB v1 configuration options. An environment variable overrides the equivalent option in the configuration file. + +```bash +docker run -p 8086:8086 \ + -e INFLUXDB_REPORTING_DISABLED=true \ + -e INFLUXDB_META_DIR=/path/to/metadir \ + -e INFLUXDB_DATA_QUERY_LOG_ENABLED=false \ + influxdb:1.8 ``` -Find more about configuring InfluxDB [here](https://docs.influxdata.com/influxdb/v1.8/administration/config/). +Learn more about [configuring InfluxDB v1](https://docs.influxdata.com/influxdb/v1.8/administration/config/). -### Graphite +## Graphite InfluxDB supports the Graphite line protocol, but the service and ports are not exposed by default. To run InfluxDB with Graphite support enabled, you can either use a configuration file or set the appropriate environment variables. Run InfluxDB with the default Graphite configuration: -```console +```bash docker run -p 8086:8086 -p 2003:2003 \ -e INFLUXDB_GRAPHITE_ENABLED=true \ influxdb:1.8 @@ -542,110 +598,122 @@ docker run -p 8086:8086 -p 2003:2003 \ See the [README on GitHub](https://github.com/influxdata/influxdb/blob/master/services/graphite/README.md) for more detailed documentation to set up the Graphite service. In order to take advantage of graphite templates, you should use a configuration file by outputting a default configuration file using the steps above and modifying the `[[graphite]]` section. -### HTTP API +## InfluxDB v1 HTTP API Creating a DB named mydb: -```console -$ curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb" +```bash +curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb" ``` Inserting into the DB: -```console -$ curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000' +```bash +curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000' ``` -Read more about this in the [official documentation](https://docs.influxdata.com/influxdb/latest/guides/writing_data/) +Read more about this in the [official documentation](https://docs.influxdata.com/influxdb/latest/guides/writing_data/). -### CLI / SHELL +## CLI / SHELL Start the container: -```console -$ docker run --name=influxdb -d -p 8086:8086 influxdb:1.8 +```bash +docker run --name=influxdb -d -p 8086:8086 influxdb:1.8 ``` Run the influx client in this container: -```console -$ docker exec -it influxdb influx +```bash +docker exec -it influxdb influx ``` Or run the influx client in a separate container: -```console -$ docker run --rm --link=influxdb -it influxdb:1.8 influx -host influxdb +```bash +docker run --rm --link=influxdb -it influxdb:1.8 influx -host influxdb ``` -### Database Initialization +## InfluxDB v1 database initialization + +### Not recommended for production + +We **don't** recommend using initialization options for InfluxDB v1 production scenarios, but they're useful when running standalone instances for testing. -The InfluxDB image contains some extra functionality for initializing a database. These options are not suggested for production, but are quite useful when running standalone instances for testing. +The InfluxDB Docker Hub image lets you set initialization options when creating an InfluxDB v1 container. -The database initialization script will only be called when running `influxd`. It will not be executed when running any other program. +The database initialization script is only called when running `influxd`; it isn't executed by any other program. -#### Environment Variables +### Environment variables -The InfluxDB image uses several environment variables to automatically configure certain parts of the server. They may significantly aid you in using this image. +During the InfluxDB v1 set up process, the InfluxDB image uses environment variables to automatically configure some server options. You can override the following environment variables to customize set up options. -##### INFLUXDB_DB +#### INFLUXDB_DB Automatically initializes a database with the name of this environment variable. -##### INFLUXDB_HTTP_AUTH_ENABLED +#### INFLUXDB_HTTP_AUTH_ENABLED -Enables authentication. Either this must be set or `auth-enabled = true` must be set within the configuration file for any authentication related options below to work. +Enables authentication. Either this must be set or `auth-enabled = true` must be set within the configuration file for any authentication-related options below to work. -##### INFLUXDB_ADMIN_USER +#### INFLUXDB_ADMIN_USER The name of the admin user to be created. If this is unset, no admin user is created. -##### INFLUXDB_ADMIN_PASSWORD +#### INFLUXDB_ADMIN_PASSWORD The password for the admin user configured with `INFLUXDB_ADMIN_USER`. If this is unset, a random password is generated and printed to standard out. -##### INFLUXDB_USER +#### INFLUXDB_USER The name of a user to be created with no privileges. If `INFLUXDB_DB` is set, this user will be granted read and write permissions for that database. -##### INFLUXDB_USER_PASSWORD +#### INFLUXDB_USER_PASSWORD The password for the user configured with `INFLUXDB_USER`. If this is unset, a random password is generated and printed to standard out. -##### INFLUXDB_READ_USER +#### INFLUXDB_READ_USER The name of a user to be created with read privileges on `INFLUXDB_DB`. If `INFLUXDB_DB` is not set, this user will have no granted permissions. -##### INFLUXDB_READ_USER_PASSWORD +#### INFLUXDB_READ_USER_PASSWORD The password for the user configured with `INFLUXDB_READ_USER`. If this is unset, a random password is generated and printed to standard out. -##### INFLUXDB_WRITE_USER +#### INFLUXDB_WRITE_USER The name of a user to be created with write privileges on `INFLUXDB_DB`. If `INFLUXDB_DB` is not set, this user will have no granted permissions. -##### INFLUXDB_WRITE_USER_PASSWORD +#### INFLUXDB_WRITE_USER_PASSWORD The password for the user configured with `INFLUXDB_WRITE_USER`. If this is unset, a random password is generated and printed to standard out. -#### Initialization Files +### Initialization Files If the Docker image finds any files with the extensions `.sh` or `.iql` inside of the `/docker-entrypoint-initdb.d` folder, it will execute them. The order they are executed in is determined by the shell. This is usually alphabetical order. -#### Manually Initializing the Database +### Manually Initialize InfluxDB v1 -To manually initialize the database and exit, the `/init-influxdb.sh` script can be used directly. It takes the same parameters as the `influxd run` command. As an example: +To manually initialize an InfluxDB v1 database, use `docker run` to call the `/init-influxdb.sh` script directly. The script takes the same initialization options as the `influxd run` command--for example: -```console -$ docker run --rm \ - -e INFLUXDB_DB=db0 \ - -e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_PASSWORD=supersecretpassword \ - -e INFLUXDB_USER=telegraf -e INFLUXDB_USER_PASSWORD=secretpassword \ - -v $PWD:/var/lib/influxdb \ - influxdb:1.8 /init-influxdb.sh +```bash +docker run --rm \ + -e INFLUXDB_DB=db0 \ + -e INFLUXDB_ADMIN_USER=admin \ + -e INFLUXDB_ADMIN_PASSWORD=supersecretpassword \ + -e INFLUXDB_USER=telegraf -e \ + -e INFLUXDB_USER_PASSWORD=secretpassword \ + -v "$PWD:/var/lib/influxdb" \ + influxdb:1.8 /init-influxdb.sh ``` -The above would create the database `db0`, create an admin user with the password `supersecretpassword`, then create the `telegraf` user with your telegraf's secret password. It would then exit and leave behind any files it created in the volume that you mounted. +The command creates the following: + +- a database named `db0` +- an admin user `admin` with the password `supersecretpassword` +- a `telegraf` user with the password `secretpassword` + +The `--rm` flag causes Docker to exit and delete the container after the script runs. The data and configuration files created during initialization remain in the mounted volume (the host's `$PWD` directory). # Image Variants @@ -665,7 +733,7 @@ To minimize image size, it's uncommon for additional related tools (such as `git ## `influxdb:data` -*This image requires a valid license key from InfluxData.* Please visit our [products page](https://www.influxdata.com/products/) to learn more. +*Using this image for [InfluxDB Enterprise](https://docs.influxdata.com/enterprise_influxdb/v1/introduction/installation/meta_node_installation/#license-key-or-file) requires a valid InfluxData [license key](https://docs.influxdata.com/enterprise_influxdb/v1/introduction/installation/meta_node_installation/#license-key-or-file).* This image contains the enterprise data node package for clustering. It supports all of the same options as the InfluxDB 1.x OSS image, but it needs port 8088 to be exposed to the meta nodes. @@ -684,7 +752,7 @@ This image contains the enterprise meta node package for clustering. It is meant The license key can be specified using either an environment variable or by overriding the configuration file. If you specify the license key directly, the container needs to be able to access the InfluxData portal. ```console -$ docker run -p 8089:8089 -p 8091:8091 \ +docker run -p 8089:8089 -p 8091:8091 \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= influxdb:meta ``` @@ -696,21 +764,21 @@ The examples below will use docker's built-in networking capability. If you use First, create a docker network: ```console -$ docker network create influxdb +docker network create influxdb ``` Start three meta nodes. This is the suggested number of meta nodes. We do not recommend running more or less. If you choose to run more or less, be sure that the number of meta nodes is odd. The hostname must be set on each container to the address that will be used to access the meta node. When using docker networks, the hostname should be made the same as the name of the container. ```console -$ docker run -d --name=influxdb-meta-0 --network=influxdb \ +docker run -d --name=influxdb-meta-0 --network=influxdb \ -h influxdb-meta-0 \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= \ influxdb:meta -$ docker run -d --name=influxdb-meta-1 --network=influxdb \ +docker run -d --name=influxdb-meta-1 --network=influxdb \ -h influxdb-meta-1 \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= \ influxdb:meta -$ docker run -d --name=influxdb-meta-2 --network=influxdb \ +docker run -d --name=influxdb-meta-2 --network=influxdb \ -h influxdb-meta-2 \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= \ influxdb:meta @@ -721,16 +789,16 @@ When setting the hostname, you can use `-h ` or you can directly set t After starting the meta nodes, you need to tell them about each other. Choose one of the meta nodes and run `influxd-ctl` in the container. ```console -$ docker exec influxdb-meta-0 \ +docker exec influxdb-meta-0 \ influxd-ctl add-meta influxdb-meta-1:8091 -$ docker exec influxdb-meta-0 \ +docker exec influxdb-meta-0 \ influxd-ctl add-meta influxdb-meta-2:8091 ``` Or you can just start a single meta node. If you setup a single meta node, you do not need to use `influxd-ctl add-meta`. ```console -$ docker run -d --name=influxdb-meta --network=influxdb \ +docker run -d --name=influxdb-meta --network=influxdb \ -h influxdb-meta \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= \ influxdb:meta -single-server @@ -741,7 +809,7 @@ $ docker run -d --name=influxdb-meta --network=influxdb \ Start the data nodes using `influxdb:data` with similar command line arguments to the meta nodes. You can start as many data nodes as are allowed by your license. ```console -$ docker run -d --name=influxdb-data-0 --network=influxdb \ +docker run -d --name=influxdb-data-0 --network=influxdb \ -h influxdb-data-0 \ -e INFLUXDB_LICENSE_KEY= \ influxdb:data @@ -750,7 +818,7 @@ $ docker run -d --name=influxdb-data-0 --network=influxdb \ You can add `-p 8086:8086` to expose the http port to the host machine. After starting the container, choose one of the meta nodes and add the data node to it. ```console -$ docker exec influxdb-meta-0 \ +docker exec influxdb-meta-0 \ influxd-ctl add-data influxdb-data-0:8088 ``` @@ -767,13 +835,13 @@ InfluxDB Meta can be either configured from a config file or using environment v Generate the default configuration file: ```console -$ docker run --rm influxdb:meta influxd-meta config > influxdb-meta.conf +docker run --rm influxdb:meta influxd-meta config > influxdb-meta.conf ``` Modify the default configuration, which will now be available under `$PWD`. Then start the InfluxDB Meta container. ```console -$ docker run \ +docker run \ -v $PWD/influxdb-meta.conf:/etc/influxdb/influxdb-meta.conf:ro \ influxdb -config /etc/influxdb/influxdb-meta.conf ``` @@ -790,7 +858,7 @@ INFLUXDB_META_DIR=/path/to/metadir INFLUXDB_ENTERPRISE_REGISTRATION_ENABLED=true ``` -Find more about configuring InfluxDB Meta [here](http://docs.influxdata.com/enterprise_influxdb/latest/production_installation/meta_node_installation/). +For more information, see how to [Install InfluxDB Enterprise meta nodes](https://docs.influxdata.com/enterprise_influxdb/v1/introduction/installation/meta_node_installation/). # License diff --git a/influxdb/content.md b/influxdb/content.md index 985493946e92..e94ab3d60fae 100644 --- a/influxdb/content.md +++ b/influxdb/content.md @@ -1,194 +1,138 @@ -# InfluxDB +# What is InfluxDB? -InfluxDB is a time series database built from the ground up to handle high write and query loads. InfluxDB is meant to be used as a backing store for any use case involving large amounts of timestamped data, including DevOps monitoring, application metrics, IoT sensor data, and real-time analytics. +InfluxDB is the time series data platform designed to handle high write and query workloads. Using InfluxDB, you can collect, store, and process large amounts of timestamped data, including metrics and events for use cases such as DevOps monitoring, application metrics, IoT sensors, and event monitoring. -[InfluxDB Documentation](https://docs.influxdata.com/influxdb/latest/) +Use the InfluxDB Docker Hub image to write, query, and process time series data in [InfluxDB v2](https://docs.influxdata.com/influxdb/v2/) or [InfluxDB v1](https://docs.influxdata.com/influxdb/v1/). + +For more information, visit https://influxdata.com. %%LOGO%% -## Using this Image - InfluxDB 2.x +# How to use this image for InfluxDB v2 -### Quick start +**Quick start**: See the guide to [Install InfluxDB v2 for Docker](https://docs.influxdata.com/influxdb/v2/install/?t=Docker) and get started using InfluxDB v2. -Using this image is pretty easy, but there are a few things you should know. +## Start InfluxDB v2 and set up with the UI, CLI, or API -- You should forward TCP port 8086 -- You should mount a volume in /var/lib/influxdb2 +To start an InfluxDB v2 container, enter the following command: -```console -$ docker run \ - -p 8086:8086 \ - -v myInfluxVolume:/var/lib/influxdb2 \ - %%IMAGE%%:latest +```bash +docker run \ + -p 8086:8086 \ + -v "$PWD/data:/var/lib/influxdb2" \ + -v "$PWD/config:/etc/influxdb2" \ + %%IMAGE%%:2 ``` -After starting the container you can use the web interface at http://localhost:8086/ to setup and customize your Influx database. - -Find more about API Endpoints & Ports [here](https://docs.influxdata.com/influxdb/v2.5/reference/api/). - -### Configuration +Replace the following with your own values: -InfluxDB can be configured using a mix of a config file, environment variables, and CLI options. To mount a configuration file and use it with the server, you can use this command to generate the default configuration file: +- `$PWD/data`: A host directory to mount at the container's [InfluxDB data directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) path +- `$PWD/config`: A host directory to mount at the container's [InfluxDB configuration directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) path -```console -$ docker run --rm %%IMAGE%%:2.0 influxd print-config > config.yml -``` +After the container starts, the InfluxDB UI and API are accessible at http://localhost:8086 on the host. You're ready to set up an initial admin user, token, and bucket from outside or inside the container--choose one of the following: -Modify the default configuration, which will now be available under `$PWD`. Then start the InfluxDB container: +- **Set up InfluxDB from outside the container**: [Set up InfluxDB](https://docs.influxdata.com/influxdb/v2/get-started/setup/) from the host or network using the InfluxDB UI, `influx` CLI, or HTTP API. -```console -$ docker run -p 8086:8086 \ - -v $PWD/config.yml:/etc/influxdb2/config.yml \ - %%IMAGE%%:2.0 -``` +- **Set up InfluxDB from inside the container**: Use `docker exec` to run the `influx` CLI installed in the container--for example: -Modify `$PWD` to be the directory where you want to store the configuration file. + ```bash + docker exec influxdb2 influx setup \ + --username $USERNAME \ + --password $PASSWORD \ + --org $ORGANIZATION \ + --bucket $BUCKET \ + --force + ``` -Individual config settings can be overridden by environment variables. The variables must be named using the format `INFLUXD_${SNAKE_CASE_NAME}`. The `SNAKE_CASE_NAME` for an option will be the option's name with all dashes (`-`) replaced by underscores (`_`), in all caps. +See the [`influx setup` documentation](https://docs.influxdata.com/influxdb/v2/reference/cli/influx/setup/) for the full list of options. -Examples: +*If you run setup from within the container, InfluxDB stores `influx` CLI [connection configurations](/influxdb/v2/reference/cli/influx/#provide-required-authentication-credentials) in the container's `/etc/influxdb2/influx-configs` file.* -```console -# Config setting: bolt-path -INFLUXD_BOLT_PATH=/root/influxdb.bolt -# Config setting: no-tasks -INFLUXD_NO_TASKS=true -# Config setting: storage-wal-fsync-delay -INFLUXD_STORAGE_WAL_FSYNC_DELAY=15m -``` +## Start InfluxDB v2 with automated setup -Finally, all config options can be passed as CLI options: +To start and set up InfluxDB v2 with a single command, specify `-e DOCKER_INFLUXDB_INIT_MODE=setup` and `-e DOCKER_INFLUXDB_INIT_` environment variables for the initial user, password, bucket, and organization--for example: -```console -$ docker run -p 8086:8086 \ - %%IMAGE%%:2.0 --storage-wal-fsync-delay=15m +```bash +docker run -d -p 8086:8086 \ + -v "$PWD/data:/var/lib/influxdb2" \ + -v "$PWD/config:/etc/influxdb2" \ + -e DOCKER_INFLUXDB_INIT_MODE=setup \ + -e DOCKER_INFLUXDB_INIT_USERNAME= \ + -e DOCKER_INFLUXDB_INIT_PASSWORD= \ + -e DOCKER_INFLUXDB_INIT_ORG= \ + -e DOCKER_INFLUXDB_INIT_BUCKET= \ + %%IMAGE%%:2 ``` -CLI options take precedence over environment variables. +Replace the following with your own values: -Find more about configuring InfluxDB [here](https://docs.influxdata.com/influxdb/v2.0/reference/config-options/). +- `$PWD/data`: A host directory to mount at the container's [InfluxDB data directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) path +- `$PWD/config`: A host directory to mount at the container's [InfluxDB configuration directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) path +- ``: A name for your initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/) +- ``: A password for your initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/) +- ``: A name for your initial [organization](https://docs.influxdata.com/influxdb/v2/admin/organizations/) +- ``: A name for your initial [bucket](https://docs.influxdata.com/influxdb/v2/admin/buckets/) (database) -### Database Setup +*If you run setup from within the container, InfluxDB stores `influx` CLI [connection configurations](/influxdb/v2/reference/cli/influx/#provide-required-authentication-credentials) in the container's `/etc/influxdb2/influx-configs` file.* -InfluxDB 2.x requires authentication. A special API exists to bootstrap the first super-user in the database, along with an initial organization and bucket. It's possible to access this API manually, or to run it automatically via environment variables. +### Automated setup options -#### Manual Setup - -If your InfluxDB container is running locally (or on a host exposed to the network), you can perform initial setup from outside the container using either the UI or the `influx` CLI. Find more about setting up InfluxDB using these methods [here](https://docs.influxdata.com/influxdb/v2.0/get-started/#set-up-influxdb). - -It's also possible to perform manual setup from within the container using `docker exec`. For example, if you start the container: - -```console -$ docker run -d -p 8086:8086 \ - --name influxdb2 \ - -v $PWD:/var/lib/influxdb2 \ - %%IMAGE%%:2.0 -``` - -You can then run the `influx` client in the container: - -```console -$ docker exec influxdb2 influx setup \ - --username $USERNAME \ - --password $PASSWORD \ - --org $ORGANIZATION \ - --bucket $BUCKET \ - --force -``` +In setup mode (`DOCKER_INFLUXDB_INIT_MODE=setup`) or upgrade mode (`DOCKER_INFLUXDB_INIT_MODE=upgrade`), you can specify the following Docker-specific environment variables to provide initial setup values: -Running setup from within the container will cause CLI configs to be written to `/etc/influxdb2/influx-configs`. You can then use the `influx` CLI from within the container to extract the generated admin token: +- `DOCKER_INFLUXDB_INIT_USERNAME`: A name for your initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/). +- `DOCKER_INFLUXDB_INIT_PASSWORD`: A password for your initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/). +- `DOCKER_INFLUXDB_INIT_ORG`: A name for your initial [organization](https://docs.influxdata.com/influxdb/v2/admin/organizations/). +- `DOCKER_INFLUXDB_INIT_BUCKET`: A name for your initial [bucket](https://docs.influxdata.com/influxdb/v2/admin/buckets/). +- Optional: `DOCKER_INFLUXDB_INIT_RETENTION`: A [duration](https://docs.influxdata.com/influxdb/v2/reference/glossary/#duration) to use as the initial bucket's [retention period](https://docs.influxdata.com/influxdb/v2/reference/internals/data-retention/#bucket-retention-period). Default: `0` (infinite; doesn't delete data). +- Optional: `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`: A string value to set for the [Operator token](https://docs.influxdata.com/influxdb/v2/admin/tokens/#operator-token). Default: a generated token. -```console -# Using table output + cut -$ docker exec influxdb2 influx auth list \ - --user $USERNAME \ - --hide-headers | cut -f 3 +The following example shows how to pass values for all initial setup options: -# Using JSON output + jq -$ docker exec influxdb2 influx auth list \ - --user $USERNAME \ - --json | jq -r '.[].token' -``` - -Alternatively, you could configure your initial InfluxDB run to mount `/etc/influxdb2` as a volume: - -```console -$ docker run -d -p 8086:8086 \ - --name influxdb2 \ - -v $PWD/data:/var/lib/influxdb2 \ - -v $PWD/config:/etc/influxdb2 \ - %%IMAGE%%:2.0 +```bash +docker run -d -p 8086:8086 \ + -v "$PWD/data:/var/lib/influxdb2" \ + -v "$PWD/config:/etc/influxdb2" \ + -e DOCKER_INFLUXDB_INIT_MODE=setup \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + -e DOCKER_INFLUXDB_INIT_RETENTION=1w \ + -e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-auth-token \ + %%IMAGE%%:2 ``` -This will make the generated CLI configs available to the host. - -#### Automated Setup - -The InfluxDB image contains some extra functionality to automatically bootstrap the system. This functionality is enabled by setting the `DOCKER_INFLUXDB_INIT_MODE` environment variable to the value `setup` when running the container. Additional environment variables are used to configure the setup logic: - -- `DOCKER_INFLUXDB_INIT_USERNAME`: The username to set for the system's initial super-user (**Required**). -- `DOCKER_INFLUXDB_INIT_PASSWORD`: The password to set for the system's inital super-user (**Required**). -- `DOCKER_INFLUXDB_INIT_ORG`: The name to set for the system's initial organization (**Required**). -- `DOCKER_INFLUXDB_INIT_BUCKET`: The name to set for the system's initial bucket (**Required**). -- `DOCKER_INFLUXDB_INIT_RETENTION`: The duration the system's initial bucket should retain data. If not set, the initial bucket will retain data forever. -- `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`: The authentication token to associate with the system's initial super-user. If not set, a token will be auto-generated by the system. +*To upgrade from InfluxDB 1.x to InfluxDB 2.x, see the **Upgrading from InfluxDB 1.x** section below.\* -Automated setup will generate metadata files and CLI configurations. It's recommended to mount volumes at both paths to avoid losing data. +With InfluxDB set up and running, see the [Get started](https://docs.influxdata.com/influxdb/v2/get-started/) tutorial to create tokens and write and query data. -For example, a minimal invocation of automated setup is: - -```console -$ docker run -d -p 8086:8086 \ - -v $PWD/data:/var/lib/influxdb2 \ - -v $PWD/config:/etc/influxdb2 \ - -e DOCKER_INFLUXDB_INIT_MODE=setup \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - %%IMAGE%%:2.0 -``` - -And an example using all available options is: - -```console -$ docker run -d -p 8086:8086 \ - -v $PWD/data:/var/lib/influxdb2 \ - -v $PWD/config:/etc/influxdb2 \ - -e DOCKER_INFLUXDB_INIT_MODE=setup \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - -e DOCKER_INFLUXDB_INIT_RETENTION=1w \ - -e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-auth-token \ - %%IMAGE%%:2.0 -``` - -**NOTE:** Automated setup will not run if an existing boltdb file is found at the configured path. This behavior allows for the InfluxDB container to reboot post-setup without encountering "DB is already set up" errors. +### Custom Initialization Scripts -### Interacting with InfluxDB +In `setup` mode (`DOCKER_INFLUXDB_INIT_MODE=setup`) or `upgrade` mode (`DOCKER_INFLUXDB_INIT_MODE=upgrade`), the InfluxDB Docker Hub image supports running custom initialization scripts. After the setup process completes, scripts are executed in lexical sort order by name. -Once an InfluxDB instance has completed initial setup, its APIs will unlock. See the main documentation site for reference information and examples on: +For the container to run scripts, they must: -- [Writing data](https://docs.influxdata.com/influxdb/v2.0/write-data/) -- [Reading data](https://docs.influxdata.com/influxdb/v2.0/query-data/) -- [Configuring security](https://docs.influxdata.com/influxdb/v2.0/security/) -- [And more!](https://docs.influxdata.com/influxdb/v2.0/) +- Be mounted in the container's `/docker-entrypoint-initdb.d` directory +- Be named using the `.sh` file name extension +- Be executable by the user running the `docker run` command--for example, to allow the current use to execute a script with `docker run`: -### Custom Initialization Scripts + ```bash + chmod +x ./scripts/ + ``` -The InfluxDB image supports running arbitrary initialization scripts after initial system setup, on both the `setup` and `upgrade` paths. Scripts must have extension `.sh`, must have execute file permissions (`chmod +x `) and be mounted inside of the `/docker-entrypoint-initdb.d` directory. When multiple scripts are present, they will be executed in lexical sort order by name. +> #### Grant permissions to mounted files +> +> By default, Docker runs containers using the user and group IDs of the user executing the `docker run` command. When files are bind-mounted into the container, Docker preserves the user and group ownership from the host system. -As a convenience for script-writers, the image will export a number of variables into the environment before executing any scripts: +The image exports a number of variables into the environment before executing scripts. The following variables are available for you to use in your scripts: -- `INFLUX_CONFIGS_PATH`: Path to the CLI configs file written by `setup`/`upgrade` -- `INFLUX_HOST`: URL to the `influxd` instance running setup logic +- `INFLUX_CONFIGS_PATH`: Path to the `influx` CLI connection configurations file written by `setup`/`upgrade` +- `INFLUX_HOST`: URL to the `influxd` instance running `setup`/`upgrade` - `DOCKER_INFLUXDB_INIT_USER_ID`: ID of the initial admin user created by `setup`/`upgrade` - `DOCKER_INFLUXDB_INIT_ORG_ID`: ID of the initial organization created by `setup`/`upgrade` - `DOCKER_INFLUXDB_INIT_BUCKET_ID`: ID of the initial bucket created by `setup`/`upgrade` -For example, if you wanted to grant write-access to an InfluxDB 1.x client on your initial bucket, you'd first create the file `$PWD/scripts/setup-v1.sh` with contents: +For example, to grant an InfluxDB 1.x client *write* permission to your initial bucket, create a `$PWD/scripts/setup-v1.sh` file that contains the following: ```bash #!/bin/bash @@ -208,271 +152,372 @@ influx v1 auth create \ --org ${DOCKER_INFLUXDB_INIT_ORG} ``` -Then you'd run: - -```console -$ docker run -p 8086:8086 \ - -v $PWD/data:/var/lib/influxdb2 \ - -v $PWD/config:/etc/influxdb2 \ - -v $PWD/scripts:/docker-entrypoint-initdb.d \ - -e DOCKER_INFLUXDB_INIT_MODE=setup \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - -e V1_DB_NAME=v1-db \ - -e V1_RP_NAME=v1-rp \ - -e V1_AUTH_USERNAME=v1-user \ - -e V1_AUTH_PASSWORD=v1-password \ - %%IMAGE%%:2.0 +Then, run the following command to start and set up InfluxDB using custom scripts: + +```bash +docker run -p 8086:8086 \ + -v "$PWD/data:/var/lib/influxdb2" \ + -v "$PWD/config:/etc/influxdb2" \ + -v "$PWD/scripts:/docker-entrypoint-initdb.d" \ + -e DOCKER_INFLUXDB_INIT_MODE=setup \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + -e V1_DB_NAME=v1-db \ + -e V1_RP_NAME=v1-rp \ + -e V1_AUTH_USERNAME=v1-user \ + -e V1_AUTH_PASSWORD=v1-password \ + %%IMAGE%%:2 ``` -**NOTE:** Custom scripts will not run if an existing boltdb file is found at the configured path (causing `setup` or `upgrade` to be skipped). This behavior allows for the InfluxDB container to reboot post-initialization without encountering errors from non-idempotent script commands. +> #### Automated setup and upgrade ignored if already setup +> +> Automated `setup`, `upgrade`, and custom initialization scripts won't run if an existing `influxd.bolt` boltdb file from a previous setup is found in the configured data directory. +> +> This behavior allows for the InfluxDB container to reboot post-setup and avoid overwriting migrated data, `DB is already set up` errors, and errors from non-idempotent script commands. + +## Access InfluxDB v2 file system and ports + +When starting an InfluxDB container, we recommend the following for easy access to your data, configurations, and InfluxDB v2 instance: + +- Publish the container's `8086` port to make the InfluxDB [UI](https://docs.influxdata.com/influxdb/v2/get-started/#influxdb-user-interface-ui) and [HTTP API](https://docs.influxdata.com/influxdb/v2/reference/api/) accessible from the host system. +- Use Docker [Volumes](https://docs.docker.com/storage/volumes/) or [Bind mounts](https://docs.docker.com/storage/bind-mounts/) to persist InfluxDB [data and configuration directories](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) outside of containers. + +### Default file system and networking ports + +For InfluxDB v2, the InfluxDB Docker Hub image uses the following default ports and file system paths: + +- TCP port `8086`: the default port for the InfluxDB [UI](https://docs.influxdata.com/influxdb/v2/get-started/#influxdb-user-interface-ui) and [HTTP API](https://docs.influxdata.com/influxdb/v2/reference/api/). To specify a different port or address, use the [`http-bind-address` configuration option](https://docs.influxdata.com/influxdb/v2/reference/config-options/#http-bind-address). +- `/var/lib/influxdb2/`: the [InfluxDB data directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) + + - `/engine/`: Default InfluxDB [Storage engine path](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/#engine-path) + - `influxd.bolt`: Default [Bolt path](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/#bolt-path) + - `influxd.sqlite`: Default [SQLite path](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/#sqlite-path) + +- `/etc/influxdb2`: the [InfluxDB configuration directory](https://docs.influxdata.com/influxdb/v2/reference/internals/file-system-layout/?t=docker#file-system-layout) + + - `/etc/influxdb2/configs`: `influx` CLI connection configurations file + - `/etc/influxdb2/influx-configs`: `influx` CLI connection configurations file, *if you run setup from within the container* + - Optional: `/etc/influxdb2/config.[yml, json, toml]`: Your customized InfluxDB [configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/) file + +### Configure InfluxDB v2 in a container + +To customize InfluxDB, specify [server configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/#configuration-options) in a configuration file, environment variables, or command line flags. + +#### Use a configuration file + +To customize and mount an InfluxDB configuration file, do the following: + +1. If you haven't already, [set up InfluxDB](https://docs.influxdata.com/influxdb/v2/get-started/setup/) to initialize an API [Operator token](https://docs.influxdata.com/influxdb/v2/admin/tokens/#operator-token). You'll need the Operator token in the next step. + +2. Run the `influx server-config` CLI command to output the current server configuration to a file in the mounted configuration directory--for example, enter the following command to use the container's `influx` CLI and default Operator token: + + ```bash + docker exec -it influxdb2 influx server-config > "$PWD/config/config.yml" + ``` + +Replace `$PWD/config/` with the host directory that you mounted at the container's `/etc/influxdb2` InfluxDB configuration directory path. + +1. Edit the `config.yml` file to customize [server configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/#configuration-options). +2. Restart the container. + + ```bash + docker restart influxdb2 + ``` + +#### Use environment variables and command line flags + +To override specific [configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/#configuration-options), use environment variables or command line flags. + +- Pass `INFLUXD_` environment variables to Docker to override the configuration file--for example: + + ```bash + docker run -p 8086:8086 \ + -e INFLUXD_STORAGE_WAL_FSYNC_DELAY=15m \ + influxdb:2 + ``` + +- Pass `influxd` command line flags to override environment variables and the configuration file--for example: + + ```bash + docker run -p 8086:8086 \ + %%IMAGE%%:2 --storage-wal-fsync-delay=15m + ``` + +To learn more, see [InfluxDB configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options). ### Upgrading from InfluxDB 1.x -InfluxDB 2.x provides a 1.x-compatible API, but expects a different storage layout on disk. To bridge this mismatch, the InfluxDB image contains extra functionality to migrate 1.x data and config into 2.x layouts automatically before booting the `influxd` server. +InfluxDB 2.x provides a [1.x-compatible API](https://docs.influxdata.com/influxdb/v2/reference/api/influxdb-1x/), but expects a different storage layout on disk. To account for these differences, the InfluxDB Docker Hub image provides an `upgrade` feature that migrates 1.x data and configuration to 2.x before starting the `influxd` server. -The automated upgrade process bootstraps an initial admin user, organization, and bucket in the system. Additional environment variables are used to configure the setup logic: +The automated upgrade process creates the following in the InfluxDB v2 container: -- `DOCKER_INFLUXDB_INIT_USERNAME`: The username to set for the system's initial super-user (**Required**). -- `DOCKER_INFLUXDB_INIT_PASSWORD`: The password to set for the system's inital super-user (**Required**). -- `DOCKER_INFLUXDB_INIT_ORG`: The name to set for the system's initial organization (**Required**). -- `DOCKER_INFLUXDB_INIT_BUCKET`: The name to set for the system's initial bucket (**Required**). -- `DOCKER_INFLUXDB_INIT_RETENTION`: The duration the system's initial bucket should retain data. If not set, the initial bucket will retain data forever. -- `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`: The authentication token to associate with the system's initial super-user. If not set, a token will be auto-generated by the system. +- an initial admin user +- an initial organization +- an initial bucket +- InfluxDB v2 data files (the default path is `/var/lib/influxdb2`) +- InfluxDB v2 configuration files (the default path is `/etc/influxdb2`) -It also requires extra volumes to be mounted into the 2.x container: +*Mount volumes at both paths to avoid losing data.* -- Data from the 1.x instance -- Custom config from the 1.x instance (if any) +To run the automated upgrade, specify the following when you start the container: -The upgrade process searches for mounted 1.x data / config in this priority order: +- InfluxDB v2 initialization environment variables: -1. A config file referred to by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG` environment variable -2. A data directory referred to by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_DIR` environment variable -3. A config file mounted at `/etc/influxdb/influxdb.conf` -4. A data directory mounted at `/var/lib/influxdb` + - `DOCKER_INFLUXDB_INIT_MODE=upgrade` + - `DOCKER_INFLUXDB_INIT_USERNAME`: A name for the initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/) + - `DOCKER_INFLUXDB_INIT_PASSWORD`: A password for the initial admin [user](https://docs.influxdata.com/influxdb/v2/admin/users/) + - `DOCKER_INFLUXDB_INIT_ORG`: A name for the initial [organization](https://docs.influxdata.com/influxdb/v2/admin/organizations/) + - `DOCKER_INFLUXDB_INIT_BUCKET`: A name for the initial [bucket](https://docs.influxdata.com/influxdb/v2/admin/buckets/) + - Optional: `DOCKER_INFLUXDB_INIT_RETENTION`: A [duration](https://docs.influxdata.com/influxdb/v2/reference/glossary/#duration) for the bucket [retention period](https://docs.influxdata.com/influxdb/v2/reference/internals/data-retention/#bucket-retention-period). Default: `0` (infinite; doesn't delete data) + - Optional: `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`: A value to set for the [Operator token](https://docs.influxdata.com/influxdb/v2/admin/tokens/#operator-token). Default: generates a token. + +- 1.x data and configuration paths: -Finally, the `DOCKER_INFLUXDB_INIT_MODE` environment variable must be set to `upgrade`. + - A 1.x data volume, specified by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_DIR` environment variable or mounted at `/var/lib/influxdb` + - Optional: a 1.x custom configuration file, specified by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG` environment variable or mounted at `/etc/influxdb/influxdb.conf` -Automated upgrade will generate both data and config files, by default under `/var/lib/influxdb2` and `/etc/influxdb2`. It's recommended to mount volumes at both paths to avoid losing data. +The upgrade process searches for mounted 1.x data and configuration paths in the following order of precedence: -**NOTE:** Automated upgrade will not run if an existing boltdb file is found at the configured path. This behavior allows for the InfluxDB container to reboot post-upgrade without overwriting migrated data. +1. A configuration file referenced by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG` environment variable +2. A data directory referenced by the `DOCKER_INFLUXDB_INIT_UPGRADE_V1_DIR` environment variable +3. A configuration file mounted at `/etc/influxdb/influxdb.conf` +4. A data directory mounted at `/var/lib/influxdb` -Find more about the InfluxDB upgrade process [here](https://docs.influxdata.com/influxdb/v2.0/upgrade/v1-to-v2/). See below for examples of common upgrade scenarios. +> #### Automated setup and upgrade ignored if already setup +> +> Automated `setup`, `upgrade`, and custom initialization scripts won't run if an existing `influxd.bolt` boltdb file from a previous setup is found in the configured data directory. +> +> This behavior allows for the InfluxDB container to reboot post-setup and avoid overwriting migrated data, `DB is already set up` errors, and errors from non-idempotent script commands. -#### Upgrade Example - Minimal +#### Upgrade InfluxDB 1.x: default data path and configuration Assume you've been running a minimal InfluxDB 1.x deployment: -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - %%IMAGE%%:1.8 +```bash +docker run -p 8086:8086 \ + -v influxdb:/var/lib/influxdb \ + %%IMAGE%%:1.8 ``` -To upgrade this deployment to InfluxDB 2.x, stop the running InfluxDB 1.x container, then run: - -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - -v influxdb2:/var/lib/influxdb2 \ - -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - %%IMAGE%%:2.0 +To upgrade this deployment to InfluxDB 2.x, stop the running InfluxDB 1.x container, and then run the following command: + +```bash +docker run -p 8086:8086 \ + -v influxdb:/var/lib/influxdb \ + -v influxdb2:/var/lib/influxdb2 \ + -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + %%IMAGE%%:2 ``` -#### Upgrade Example - Custom InfluxDB 1.x Config +#### Upgrade InfluxDB 1.x: custom configuration -Assume you've been running an InfluxDB 1.x deployment with customized config: +Assume you've been running an InfluxDB 1.x deployment with customized configuration (`/etc/influxdb/influxdb.conf`): -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf \ - %%IMAGE%%:1.8 +```bash +docker run -p 8086:8086 \ + -v influxdb:/var/lib/influxdb \ + -v "$PWD/influxdb.conf:/etc/influxdb/influxdb.conf" \ + %%IMAGE%%:1.8 ``` -To upgrade this deployment to InfluxDB 2.x, stop the running container, then run: - -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - -v influxdb2:/var/lib/influxdb2 \ - -v influxdb2-config:/etc/influxdb2 \ - -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf \ - -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - %%IMAGE%%:2.0 +To upgrade this deployment to InfluxDB 2.x, stop the running InfluxDB 1.x container, and then run the following command: + +```bash +docker run -p 8086:8086 \ + -v influxdb:/var/lib/influxdb \ + -v influxdb2:/var/lib/influxdb2 \ + -v influxdb2-config:/etc/influxdb2 \ + -v "$PWD/influxdb.conf:/etc/influxdb/influxdb.conf" \ + -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + %%IMAGE%%:2 ``` -#### Upgrade Example - Custom Paths +#### Upgrade InfluxDB 1.x: custom data and configuration paths -Assume you've been running an InfluxDB 1.x deployment with data and config mounted at custom paths: +Assume you've been running an InfluxDB 1.x deployment with data and configuration mounted at custom paths: -```console -$ docker run -p 8086:8086 \ - -v influxdb:/root/influxdb/data \ - -v $PWD/influxdb.conf:/root/influxdb/influxdb.conf \ - %%IMAGE%%:1.8 -config /root/influxdb/influxdb.conf +```bash +docker run -p 8086:8086 \ + -v influxdb:/root/influxdb/data \ + -v "$PWD/influxdb.conf:/root/influxdb/influxdb.conf" \ + %%IMAGE%%:1.8 -config /root/influxdb/influxdb.conf ``` -To upgrade this deployment to InfluxDB 2.x, first decide if you'd like to keep using custom paths, or use the InfluxDB 2.x defaults. If you decide to use the defaults, you'd stop the running InfluxDB 1.x container, then run: - -```console -$ docker run -p 8086:8086 \ - -v influxdb:/root/influxdb/data \ - -v influxdb2:/var/lib/influxdb2 \ - -v influxdb2-config:/etc/influxdb2 \ - -v $PWD/influxdb.conf:/root/influxdb/influxdb.conf \ - -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - -e DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG=/root/influxdb/influxdb.conf \ - %%IMAGE%%:2.0 -``` +Before you upgrade to InfluxDB v2, decide whether to keep using your custom paths or to use the InfluxDB v2 defaults. + +To use InfluxDB v2 defaults, stop the running InfluxDB 1.x container, and then run the following command: -To retain your custom paths, you'd run: - -```console -$ docker run -p 8086:8086 \ - -v influxdb:/root/influxdb/data \ - -v influxdb2:/root/influxdb2/data \ - -v influxdb2-config:/etc/influxdb2 \ - -v $PWD/influxdb.conf:/root/influxdb/influxdb.conf \ - -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ - -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ - -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ - -e DOCKER_INFLUXDB_INIT_ORG=my-org \ - -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ - -e DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG=/root/influxdb/influxdb.conf \ - -e DOCKER_INFLUXDB_CONFIG_PATH=/root/influxdb2/config.toml \ - -e DOCKER_INFLUXDB_BOLT_PATH=/root/influxdb2/influxdb.bolt \ - -e DOCKER_INFLUXDB_ENGINE_PATH=/root/influxdb2/engine \ - %%IMAGE%%:2.0 +```bash +docker run -p 8086:8086 \ + -v influxdb:/root/influxdb/data \ + -v influxdb2:/var/lib/influxdb2 \ + -v influxdb2-config:/etc/influxdb2 \ + -v "$PWD/influxdb.conf:/root/influxdb/influxdb.conf" \ + -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + -e DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG=/root/influxdb/influxdb.conf \ + %%IMAGE%%:2 ``` +To use your custom paths instead of InfluxDB v2 default paths, run the following command: + +```bash +docker run -p 8086:8086 \ + -v influxdb:/root/influxdb/data \ + -v influxdb2:/root/influxdb2/data \ + -v influxdb2-config:/etc/influxdb2 \ + -v "$PWD/influxdb.conf:/root/influxdb/influxdb.conf" \ + -e DOCKER_INFLUXDB_INIT_MODE=upgrade \ + -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \ + -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \ + -e DOCKER_INFLUXDB_INIT_ORG=my-org \ + -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \ + -e DOCKER_INFLUXDB_INIT_UPGRADE_V1_CONFIG=/root/influxdb/influxdb.conf \ + -e DOCKER_INFLUXDB_CONFIG_PATH=/root/influxdb2/config.toml \ + -e DOCKER_INFLUXDB_BOLT_PATH=/root/influxdb2/influxdb.bolt \ + -e DOCKER_INFLUXDB_ENGINE_PATH=/root/influxdb2/engine \ + %%IMAGE%%:2 +``` + +To learn more about the upgrade process, see the [v1-to-v2 upgrade guide](https://docs.influxdata.com/influxdb/v2.0/upgrade/v1-to-v2/). + ### Upgrading from quay.io-hosted InfluxDB 2.x image -Early Docker builds of InfluxDB 2.x were hosted at `quay.io/influxdb/influxdb`. The builds were very bare-bones, containing the `influx` and `influxd` binaries without any default configuration or helper scripts. By default, the `influxd` process stored data under `/root/.influxdbv2`. +Early Docker builds of InfluxDB 2.x were hosted at `quay.io/influxdb/influxdb` and contained the `influx` and `influxd` binaries without any default configuration or helper scripts. By default, the `influxd` process stored data in `/root/.influxdbv2`. + +Starting with `v2.0.4`, we restored the InfluxDB Docker Hub build, which defaults to storing data in `/var/lib/influxdb2`. If you upgrade directly from `quay.io/influxdb/influxdb` to `influxdb:2.0.4` using the default settings, InfluxDB won't be able to find your existing data files. -Starting with `v2.0.4`, we've restored our DockerHub build. This build defaults to storing data in `/var/lib/influxdb2`. Upgrading directly from `quay.io/influxdb/influxdb` to `influxdb:2.0.4` without modifying any settings will appear to cause data loss, as the new process won't be able to find your existing data files. +To avoid this problem when migrating from `quay.io/influxdb/influxdb` to `influxdb:2.0`, choose one of the following: -To avoid this problem when migrating from `quay.io/influxdb/influxdb` to `influxdb:2.0`, you can use one of the following approaches. +#### Update the mount to use the InfluxDB default -#### Change volume mount point +To use the InfluxDB Docker Hub data path, start a container that mounts your data volume into `/var/lib/influxdb2`--for example, if you used the following command to start the InfluxDB quay.io container: -If you don't mind using the new default path, you can switch the mount-point for the volume containing your data: +```bash +# quay.io InfluxDB 2.x container +docker run -p 8086:8086 \ + -v "$PWD:/root/.influxdbv2" \ + quay.io/influxdb/influxdb:v2.0.3 +``` -```console -# Migrate from this: -$ docker run -p 8086:8086 \ - -v $PWD:/root/.influxdbv2 \ - quay.io/influxdb/influxdb:v2.0.3 +Use this command to start an InfluxDB v2 Docker Hub container: -# To this: +```bash +# Docker Hub InfluxDB 2.x container docker run -p 8086:8086 \ - -v $PWD:/var/lib/influxdb2 \ - %%IMAGE%%:2.0 + -v "$PWD:/var/lib/influxdb2" \ + %%IMAGE%%:2 ``` -#### Override default configs +#### Configure InfluxDB to use the container home directory + +To continue using the `/root/.influxdbv2` data path, customize storage path configuration options ([bolt-path](https://docs.influxdata.com/influxdb/v2/reference/config-options/#bolt-path), [engine-path](https://docs.influxdata.com/influxdb/v2/reference/config-options/#engine-path), [sqlite-path](https://docs.influxdata.com/influxdb/v2/reference/config-options/#sqlite-path)) configuration options for your InfluxDB Docker Hub container--for example, if you used the following command to start the InfluxDB quay.io container: -If you'd rather keep your data files in the home directory, you can override the container's default config: +```bash +# quay.io-hosted InfluxDB 2.x +docker run -p 8086:8086 \ + -v "$PWD:/root/.influxdbv2" \ + quay.io/influxdb/influxdb:v2.0.3 +``` -```console -# Migrate from this: -$ docker run -p 8086:8086 \ - -v $PWD:/root/.influxdbv2 \ - quay.io/influxdb/influxdb:v2.0.3 +Use this command to start an InfluxDB v2 Docker Hub container: -# To this: +```bash docker run -p 8086:8086 \ - -e INFLUXD_BOLT_PATH=/root/.influxdbv2/influxd.bolt \ - -e INFLUXD_ENGINE_PATH=/root/.influxdbv2/engine \ - -v $PWD:/root/.influxdbv2 \ - %%IMAGE%%:2.0 + -e INFLUXD_BOLT_PATH=/root/.influxdbv2/influxd.bolt \ + -e INFLUXD_ENGINE_PATH=/root/.influxdbv2/engine \ + -v "$PWD:/root/.influxdbv2" \ + %%IMAGE%%:2 ``` -See the section about configuration below for more ways to override the data paths. +# How to use this image for InfluxDB v1 -## Using this Image - InfluxDB 1.x +Use the InfluxDB Docker Hub image to run and set up an [InfluxDB 1.x](https://docs.influxdata.com/influxdb/v1/) container. -### Running the container +## Running the container -The InfluxDB image exposes a shared volume under `/var/lib/influxdb`, so you can mount a host directory to that point to access persisted container data. A typical invocation of the container might be: +To start an InfluxDB 1.x container, enter the following command: -```console -$ docker run -p 8086:8086 \ - -v $PWD:/var/lib/influxdb \ - %%IMAGE%%:1.8 +```bash +docker run -p 8086:8086 \ + -v "$PWD:/var/lib/influxdb" \ + %%IMAGE%%:1.8 ``` -Modify `$PWD` to the directory where you want to store data associated with the InfluxDB container. +The command passes the following arguments: -You can also have Docker control the volume mountpoint by using a named volume. +- `-p 8086:8086`: Exposes the InfluxDB [HTTP API](https://docs.influxdata.com/influxdb/v2/reference/api/) on host port `8086`. +- `-v $PWD:/var/lib/influxdb`: Mounts the host's `$PWD` directory to the [InfluxDB data directory](https://docs.influxdata.com/influxdb/v1/concepts/file-system-layout/) to persist data outside the container. -```console -$ docker run -p 8086:8086 \ - -v influxdb:/var/lib/influxdb \ - %%IMAGE%%:1.8 -``` +Replace `$PWD` with the host directory where you want InfluxDB to store data. -### Exposed Ports +*Use Docker [Volumes](https://docs.docker.com/storage/volumes/) or [Bind mounts](https://docs.docker.com/storage/bind-mounts/) to persist InfluxDB [data and configuration directories](https://docs.influxdata.com/influxdb/v1/concepts/file-system-layout/).* -The following ports are important and are used by InfluxDB. +## Networking ports -- 8086 HTTP API port -- 2003 Graphite support, if it is enabled +InfluxDB uses the following networking ports: -The HTTP API port will be automatically exposed when using `docker run -P`. +- TCP port `8086`: the default port for the [HTTP API](https://docs.influxdata.com/influxdb/v1/tools/api/) +- TCP port `2003`: the port for the Graphite protocol (if enabled) -### Configuration +Using the `docker run` [`-P, --publish-all` flag](https://docs.docker.com/reference/cli/docker/container/run/#publish-all) exposes the InfluxDB HTTP API to the host. -InfluxDB can be either configured from a config file or using environment variables. To mount a configuration file and use it with the server, you can use this command: +## Configure InfluxDB v1 in a container -Generate the default configuration file: +To configure InfluxDB v1 in a container, use a configuration file or environment variables. -```console -$ docker run --rm %%IMAGE%%:1.8 influxd config > influxdb.conf -``` +### Use a configuration file -Modify the default configuration, which will now be available under `$PWD`. Then start the InfluxDB container. +To customize and mount a configuration file, do the following: -```console -$ docker run -p 8086:8086 \ - -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro \ - %%IMAGE%%:1.8 -config /etc/influxdb/influxdb.conf -``` +1. Output the current server configuration to a file in the mounted configuration directory--for example: + + ```bash + docker run --rm %%IMAGE%%:1.8 influxd config > influxdb.conf + ``` + +2. Edit the `influxdb.conf` file to customize [server configuration options](https://docs.influxdata.com/influxdb/v2/reference/config-options/#configuration-options). + + ```bash + docker run -p 8086:8086 \ + -v "$PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro" \ + %%IMAGE%%:1.8 -config /etc/influxdb/influxdb.conf + ``` -Modify `$PWD` to the directory where you want to store the configuration file. + Replace `$PWD` with the host directory where you want to store the configuration file. -For environment variables, the format is `INFLUXDB_$SECTION_$NAME`. All dashes (`-`) are replaced with underscores (`_`). If the variable isn't in a section, then omit that part. +### Use environment variables -Examples: +Pass [`INFLUXDB_` environment variables](https://docs.influxdata.com/influxdb/v1/administration/config/#environment-variables) to override specific InfluxDB v1 configuration options. An environment variable overrides the equivalent option in the configuration file. -```console -INFLUXDB_REPORTING_DISABLED=true -INFLUXDB_META_DIR=/path/to/metadir -INFLUXDB_DATA_QUERY_LOG_ENABLED=false +```bash +docker run -p 8086:8086 \ + -e INFLUXDB_REPORTING_DISABLED=true \ + -e INFLUXDB_META_DIR=/path/to/metadir \ + -e INFLUXDB_DATA_QUERY_LOG_ENABLED=false \ + %%IMAGE%%:1.8 ``` -Find more about configuring InfluxDB [here](https://docs.influxdata.com/influxdb/v1.8/administration/config/). +Learn more about [configuring InfluxDB v1](https://docs.influxdata.com/influxdb/v1.8/administration/config/). -### Graphite +## Graphite InfluxDB supports the Graphite line protocol, but the service and ports are not exposed by default. To run InfluxDB with Graphite support enabled, you can either use a configuration file or set the appropriate environment variables. Run InfluxDB with the default Graphite configuration: -```console +```bash docker run -p 8086:8086 -p 2003:2003 \ -e INFLUXDB_GRAPHITE_ENABLED=true \ %%IMAGE%%:1.8 @@ -480,107 +525,119 @@ docker run -p 8086:8086 -p 2003:2003 \ See the [README on GitHub](https://github.com/influxdata/influxdb/blob/master/services/graphite/README.md) for more detailed documentation to set up the Graphite service. In order to take advantage of graphite templates, you should use a configuration file by outputting a default configuration file using the steps above and modifying the `[[graphite]]` section. -### HTTP API +## InfluxDB v1 HTTP API Creating a DB named mydb: -```console -$ curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb" +```bash +curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb" ``` Inserting into the DB: -```console -$ curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000' +```bash +curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000' ``` -Read more about this in the [official documentation](https://docs.influxdata.com/influxdb/latest/guides/writing_data/) +Read more about this in the [official documentation](https://docs.influxdata.com/influxdb/latest/guides/writing_data/). -### CLI / SHELL +## CLI / SHELL Start the container: -```console -$ docker run --name=influxdb -d -p 8086:8086 %%IMAGE%%:1.8 +```bash +docker run --name=influxdb -d -p 8086:8086 %%IMAGE%%:1.8 ``` Run the influx client in this container: -```console -$ docker exec -it influxdb influx +```bash +docker exec -it influxdb influx ``` Or run the influx client in a separate container: -```console -$ docker run --rm --link=influxdb -it %%IMAGE%%:1.8 influx -host influxdb +```bash +docker run --rm --link=influxdb -it %%IMAGE%%:1.8 influx -host influxdb ``` -### Database Initialization +## InfluxDB v1 database initialization + +### Not recommended for production + +We **don't** recommend using initialization options for InfluxDB v1 production scenarios, but they're useful when running standalone instances for testing. -The InfluxDB image contains some extra functionality for initializing a database. These options are not suggested for production, but are quite useful when running standalone instances for testing. +The InfluxDB Docker Hub image lets you set initialization options when creating an InfluxDB v1 container. -The database initialization script will only be called when running `influxd`. It will not be executed when running any other program. +The database initialization script is only called when running `influxd`; it isn't executed by any other program. -#### Environment Variables +### Environment variables -The InfluxDB image uses several environment variables to automatically configure certain parts of the server. They may significantly aid you in using this image. +During the InfluxDB v1 set up process, the InfluxDB image uses environment variables to automatically configure some server options. You can override the following environment variables to customize set up options. -##### INFLUXDB_DB +#### INFLUXDB_DB Automatically initializes a database with the name of this environment variable. -##### INFLUXDB_HTTP_AUTH_ENABLED +#### INFLUXDB_HTTP_AUTH_ENABLED -Enables authentication. Either this must be set or `auth-enabled = true` must be set within the configuration file for any authentication related options below to work. +Enables authentication. Either this must be set or `auth-enabled = true` must be set within the configuration file for any authentication-related options below to work. -##### INFLUXDB_ADMIN_USER +#### INFLUXDB_ADMIN_USER The name of the admin user to be created. If this is unset, no admin user is created. -##### INFLUXDB_ADMIN_PASSWORD +#### INFLUXDB_ADMIN_PASSWORD The password for the admin user configured with `INFLUXDB_ADMIN_USER`. If this is unset, a random password is generated and printed to standard out. -##### INFLUXDB_USER +#### INFLUXDB_USER The name of a user to be created with no privileges. If `INFLUXDB_DB` is set, this user will be granted read and write permissions for that database. -##### INFLUXDB_USER_PASSWORD +#### INFLUXDB_USER_PASSWORD The password for the user configured with `INFLUXDB_USER`. If this is unset, a random password is generated and printed to standard out. -##### INFLUXDB_READ_USER +#### INFLUXDB_READ_USER The name of a user to be created with read privileges on `INFLUXDB_DB`. If `INFLUXDB_DB` is not set, this user will have no granted permissions. -##### INFLUXDB_READ_USER_PASSWORD +#### INFLUXDB_READ_USER_PASSWORD The password for the user configured with `INFLUXDB_READ_USER`. If this is unset, a random password is generated and printed to standard out. -##### INFLUXDB_WRITE_USER +#### INFLUXDB_WRITE_USER The name of a user to be created with write privileges on `INFLUXDB_DB`. If `INFLUXDB_DB` is not set, this user will have no granted permissions. -##### INFLUXDB_WRITE_USER_PASSWORD +#### INFLUXDB_WRITE_USER_PASSWORD The password for the user configured with `INFLUXDB_WRITE_USER`. If this is unset, a random password is generated and printed to standard out. -#### Initialization Files +### Initialization Files If the Docker image finds any files with the extensions `.sh` or `.iql` inside of the `/docker-entrypoint-initdb.d` folder, it will execute them. The order they are executed in is determined by the shell. This is usually alphabetical order. -#### Manually Initializing the Database +### Manually Initialize InfluxDB v1 -To manually initialize the database and exit, the `/init-influxdb.sh` script can be used directly. It takes the same parameters as the `influxd run` command. As an example: +To manually initialize an InfluxDB v1 database, use `docker run` to call the `/init-influxdb.sh` script directly. The script takes the same initialization options as the `influxd run` command--for example: -```console -$ docker run --rm \ - -e INFLUXDB_DB=db0 \ - -e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_PASSWORD=supersecretpassword \ - -e INFLUXDB_USER=telegraf -e INFLUXDB_USER_PASSWORD=secretpassword \ - -v $PWD:/var/lib/influxdb \ - %%IMAGE%%:1.8 /init-influxdb.sh +```bash +docker run --rm \ + -e INFLUXDB_DB=db0 \ + -e INFLUXDB_ADMIN_USER=admin \ + -e INFLUXDB_ADMIN_PASSWORD=supersecretpassword \ + -e INFLUXDB_USER=telegraf -e \ + -e INFLUXDB_USER_PASSWORD=secretpassword \ + -v "$PWD:/var/lib/influxdb" \ + %%IMAGE%%:1.8 /init-influxdb.sh ``` -The above would create the database `db0`, create an admin user with the password `supersecretpassword`, then create the `telegraf` user with your telegraf's secret password. It would then exit and leave behind any files it created in the volume that you mounted. +The command creates the following: + +- a database named `db0` +- an admin user `admin` with the password `supersecretpassword` +- a `telegraf` user with the password `secretpassword` + +The `--rm` flag causes Docker to exit and delete the container after the script runs. The data and configuration files created during initialization remain in the mounted volume (the host's `$PWD` directory). diff --git a/influxdb/metadata.json b/influxdb/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/influxdb/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/influxdb/variant-data.md b/influxdb/variant-data.md index f6c6fc19c4f7..55dafc261dea 100644 --- a/influxdb/variant-data.md +++ b/influxdb/variant-data.md @@ -1,6 +1,6 @@ ## `%%IMAGE%%:data` -*This image requires a valid license key from InfluxData.* Please visit our [products page](https://www.influxdata.com/products/) to learn more. +*Using this image for [InfluxDB Enterprise](https://docs.influxdata.com/enterprise_influxdb/v1/introduction/installation/meta_node_installation/#license-key-or-file) requires a valid InfluxData [license key](https://docs.influxdata.com/enterprise_influxdb/v1/introduction/installation/meta_node_installation/#license-key-or-file).* This image contains the enterprise data node package for clustering. It supports all of the same options as the InfluxDB 1.x OSS image, but it needs port 8088 to be exposed to the meta nodes. diff --git a/influxdb/variant-meta.md b/influxdb/variant-meta.md index f51af2fd136f..0442235ca886 100644 --- a/influxdb/variant-meta.md +++ b/influxdb/variant-meta.md @@ -11,7 +11,7 @@ This image contains the enterprise meta node package for clustering. It is meant The license key can be specified using either an environment variable or by overriding the configuration file. If you specify the license key directly, the container needs to be able to access the InfluxData portal. ```console -$ docker run -p 8089:8089 -p 8091:8091 \ +docker run -p 8089:8089 -p 8091:8091 \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= %%IMAGE%%:meta ``` @@ -23,21 +23,21 @@ The examples below will use docker's built-in networking capability. If you use First, create a docker network: ```console -$ docker network create influxdb +docker network create influxdb ``` Start three meta nodes. This is the suggested number of meta nodes. We do not recommend running more or less. If you choose to run more or less, be sure that the number of meta nodes is odd. The hostname must be set on each container to the address that will be used to access the meta node. When using docker networks, the hostname should be made the same as the name of the container. ```console -$ docker run -d --name=influxdb-meta-0 --network=influxdb \ +docker run -d --name=influxdb-meta-0 --network=influxdb \ -h influxdb-meta-0 \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= \ %%IMAGE%%:meta -$ docker run -d --name=influxdb-meta-1 --network=influxdb \ +docker run -d --name=influxdb-meta-1 --network=influxdb \ -h influxdb-meta-1 \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= \ %%IMAGE%%:meta -$ docker run -d --name=influxdb-meta-2 --network=influxdb \ +docker run -d --name=influxdb-meta-2 --network=influxdb \ -h influxdb-meta-2 \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= \ %%IMAGE%%:meta @@ -48,16 +48,16 @@ When setting the hostname, you can use `-h ` or you can directly set t After starting the meta nodes, you need to tell them about each other. Choose one of the meta nodes and run `influxd-ctl` in the container. ```console -$ docker exec influxdb-meta-0 \ +docker exec influxdb-meta-0 \ influxd-ctl add-meta influxdb-meta-1:8091 -$ docker exec influxdb-meta-0 \ +docker exec influxdb-meta-0 \ influxd-ctl add-meta influxdb-meta-2:8091 ``` Or you can just start a single meta node. If you setup a single meta node, you do not need to use `influxd-ctl add-meta`. ```console -$ docker run -d --name=influxdb-meta --network=influxdb \ +docker run -d --name=influxdb-meta --network=influxdb \ -h influxdb-meta \ -e INFLUXDB_ENTERPRISE_LICENSE_KEY= \ %%IMAGE%%:meta -single-server @@ -68,7 +68,7 @@ $ docker run -d --name=influxdb-meta --network=influxdb \ Start the data nodes using `%%IMAGE%%:data` with similar command line arguments to the meta nodes. You can start as many data nodes as are allowed by your license. ```console -$ docker run -d --name=influxdb-data-0 --network=influxdb \ +docker run -d --name=influxdb-data-0 --network=influxdb \ -h influxdb-data-0 \ -e INFLUXDB_LICENSE_KEY= \ %%IMAGE%%:data @@ -77,7 +77,7 @@ $ docker run -d --name=influxdb-data-0 --network=influxdb \ You can add `-p 8086:8086` to expose the http port to the host machine. After starting the container, choose one of the meta nodes and add the data node to it. ```console -$ docker exec influxdb-meta-0 \ +docker exec influxdb-meta-0 \ influxd-ctl add-data influxdb-data-0:8088 ``` @@ -94,13 +94,13 @@ InfluxDB Meta can be either configured from a config file or using environment v Generate the default configuration file: ```console -$ docker run --rm %%IMAGE%%:meta influxd-meta config > influxdb-meta.conf +docker run --rm %%IMAGE%%:meta influxd-meta config > influxdb-meta.conf ``` Modify the default configuration, which will now be available under `$PWD`. Then start the InfluxDB Meta container. ```console -$ docker run \ +docker run \ -v $PWD/influxdb-meta.conf:/etc/influxdb/influxdb-meta.conf:ro \ %%IMAGE%% -config /etc/influxdb/influxdb-meta.conf ``` @@ -117,4 +117,4 @@ INFLUXDB_META_DIR=/path/to/metadir INFLUXDB_ENTERPRISE_REGISTRATION_ENABLED=true ``` -Find more about configuring InfluxDB Meta [here](http://docs.influxdata.com/enterprise_influxdb/latest/production_installation/meta_node_installation/). +For more information, see how to [Install InfluxDB Enterprise meta nodes](https://docs.influxdata.com/enterprise_influxdb/v1/introduction/installation/meta_node_installation/). diff --git a/irssi/README.md b/irssi/README.md index 1df1d04be902..81632e7bd254 100644 --- a/irssi/README.md +++ b/irssi/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.4.5`, `1.4`, `1`, `latest`, `1.4.5-bookworm`, `1.4-bookworm`, `1-bookworm`, `bookworm`](https://github.com/jessfraz/irssi/blob/a3a3f65ed35b33c791a86af4383b5129ab7b7721/debian/Dockerfile) -- [`1.4.5-alpine`, `1.4-alpine`, `1-alpine`, `alpine`, `1.4.5-alpine3.18`, `1.4-alpine3.18`, `1-alpine3.18`, `alpine3.18`](https://github.com/jessfraz/irssi/blob/a3a3f65ed35b33c791a86af4383b5129ab7b7721/alpine/Dockerfile) +- [`1.4.5`, `1.4`, `1`, `latest`, `1.4.5-bookworm`, `1.4-bookworm`, `1-bookworm`, `bookworm`](https://github.com/jessfraz/irssi/blob/b8ea417aaa1a29a6003756627d748450a5bf6abe/debian/Dockerfile) + +- [`1.4.5-alpine`, `1.4-alpine`, `1-alpine`, `alpine`, `1.4.5-alpine3.22`, `1.4-alpine3.22`, `1-alpine3.22`, `alpine3.22`](https://github.com/jessfraz/irssi/blob/48233da7bca13e68f9792da75119fe595f6192c9/alpine/Dockerfile) # Quick reference (cont.) @@ -33,7 +34,7 @@ WARNING: [https://github.com/jessfraz/irssi/issues](https://github.com/jessfraz/irssi/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/irssi/), [`arm32v5`](https://hub.docker.com/r/arm32v5/irssi/), [`arm32v6`](https://hub.docker.com/r/arm32v6/irssi/), [`arm32v7`](https://hub.docker.com/r/arm32v7/irssi/), [`arm64v8`](https://hub.docker.com/r/arm64v8/irssi/), [`i386`](https://hub.docker.com/r/i386/irssi/), [`mips64le`](https://hub.docker.com/r/mips64le/irssi/), [`ppc64le`](https://hub.docker.com/r/ppc64le/irssi/), [`s390x`](https://hub.docker.com/r/s390x/irssi/) + [`amd64`](https://hub.docker.com/r/amd64/irssi/), [`arm32v5`](https://hub.docker.com/r/arm32v5/irssi/), [`arm32v6`](https://hub.docker.com/r/arm32v6/irssi/), [`arm32v7`](https://hub.docker.com/r/arm32v7/irssi/), [`arm64v8`](https://hub.docker.com/r/arm64v8/irssi/), [`i386`](https://hub.docker.com/r/i386/irssi/), [`mips64le`](https://hub.docker.com/r/mips64le/irssi/), [`ppc64le`](https://hub.docker.com/r/ppc64le/irssi/), [`riscv64`](https://hub.docker.com/r/riscv64/irssi/), [`s390x`](https://hub.docker.com/r/s390x/irssi/) - **Published image artifact details**: [repo-info repo's `repos/irssi/` directory](https://github.com/docker-library/repo-info/blob/master/repos/irssi) ([history](https://github.com/docker-library/repo-info/commits/master/repos/irssi)) diff --git a/irssi/metadata.json b/irssi/metadata.json new file mode 100644 index 000000000000..e90624aca4ca --- /dev/null +++ b/irssi/metadata.json @@ -0,0 +1,5 @@ +{ + "hub": { + "categories": [] + } +} diff --git a/jetty/README.md b/jetty/README.md index aa13526716b6..e474b6f7eefd 100644 --- a/jetty/README.md +++ b/jetty/README.md @@ -24,53 +24,157 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`9.4.53-jre8-alpine`, `9.4-jre8-alpine`, `9-jre8-alpine`, `9.4.53-jre8-alpine-eclipse-temurin`, `9.4-jre8-alpine-eclipse-temurin`, `9-jre8-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jre8-alpine/Dockerfile) -- [`9.4.53-jre8`, `9.4-jre8`, `9-jre8`, `9.4.53-jre8-eclipse-temurin`, `9.4-jre8-eclipse-temurin`, `9-jre8-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jre8/Dockerfile) -- [`9.4.53-jre17-alpine`, `9.4-jre17-alpine`, `9-jre17-alpine`, `9.4.53-jre17-alpine-eclipse-temurin`, `9.4-jre17-alpine-eclipse-temurin`, `9-jre17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jre17-alpine/Dockerfile) -- [`9.4.53-jre17`, `9.4-jre17`, `9-jre17`, `9.4.53-jre17-eclipse-temurin`, `9.4-jre17-eclipse-temurin`, `9-jre17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jre17/Dockerfile) -- [`9.4.53-jre11-alpine`, `9.4-jre11-alpine`, `9-jre11-alpine`, `9.4.53-jre11-alpine-eclipse-temurin`, `9.4-jre11-alpine-eclipse-temurin`, `9-jre11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jre11-alpine/Dockerfile) -- [`9.4.53-jre11`, `9.4-jre11`, `9-jre11`, `9.4.53-jre11-eclipse-temurin`, `9.4-jre11-eclipse-temurin`, `9-jre11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jre11/Dockerfile) -- [`9.4.53-jdk8`, `9.4-jdk8`, `9-jdk8`, `9.4.53-jdk8-eclipse-temurin`, `9.4-jdk8-eclipse-temurin`, `9-jdk8-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jdk8/Dockerfile) -- [`9.4.53-jdk17-alpine`, `9.4-jdk17-alpine`, `9-jdk17-alpine`, `9.4.53-jdk17-alpine-eclipse-temurin`, `9.4-jdk17-alpine-eclipse-temurin`, `9-jdk17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jdk17-alpine/Dockerfile) -- [`9.4.53`, `9.4`, `9`, `9.4.53-jdk17`, `9.4-jdk17`, `9-jdk17`, `9.4.53-eclipse-temurin`, `9.4-eclipse-temurin`, `9-eclipse-temurin`, `9.4.53-jdk17-eclipse-temurin`, `9.4-jdk17-eclipse-temurin`, `9-jdk17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jdk17/Dockerfile) -- [`9.4.53-jdk11-alpine`, `9.4-jdk11-alpine`, `9-jdk11-alpine`, `9.4.53-jdk11-alpine-eclipse-temurin`, `9.4-jdk11-alpine-eclipse-temurin`, `9-jdk11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jdk11-alpine/Dockerfile) -- [`9.4.53-jdk11`, `9.4-jdk11`, `9-jdk11`, `9.4.53-jdk11-eclipse-temurin`, `9.4-jdk11-eclipse-temurin`, `9-jdk11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/eclipse-temurin/9.4/jdk11/Dockerfile) -- [`12.0.3-jre17-alpine`, `12.0-jre17-alpine`, `12-jre17-alpine`, `12.0.3-jre17-alpine-eclipse-temurin`, `12.0-jre17-alpine-eclipse-temurin`, `12-jre17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/12.0/jre17-alpine/Dockerfile) -- [`12.0.3-jre17`, `12.0-jre17`, `12-jre17`, `12.0.3-jre17-eclipse-temurin`, `12.0-jre17-eclipse-temurin`, `12-jre17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/12.0/jre17/Dockerfile) -- [`12.0.3-jdk17-alpine`, `12.0-jdk17-alpine`, `12-jdk17-alpine`, `12.0.3-jdk17-alpine-eclipse-temurin`, `12.0-jdk17-alpine-eclipse-temurin`, `12-jdk17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/12.0/jdk17-alpine/Dockerfile) -- [`12.0.3`, `12.0`, `12`, `12.0.3-jdk17`, `12.0-jdk17`, `12-jdk17`, `12.0.3-eclipse-temurin`, `12.0-eclipse-temurin`, `12-eclipse-temurin`, `12.0.3-jdk17-eclipse-temurin`, `12.0-jdk17-eclipse-temurin`, `12-jdk17-eclipse-temurin`, `latest`, `jdk17`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/12.0/jdk17/Dockerfile) -- [`11.0.18-jre17-alpine`, `11.0-jre17-alpine`, `11-jre17-alpine`, `11.0.18-jre17-alpine-eclipse-temurin`, `11.0-jre17-alpine-eclipse-temurin`, `11-jre17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/11.0/jre17-alpine/Dockerfile) -- [`11.0.18-jre17`, `11.0-jre17`, `11-jre17`, `11.0.18-jre17-eclipse-temurin`, `11.0-jre17-eclipse-temurin`, `11-jre17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/11.0/jre17/Dockerfile) -- [`11.0.18-jre11-alpine`, `11.0-jre11-alpine`, `11-jre11-alpine`, `11.0.18-jre11-alpine-eclipse-temurin`, `11.0-jre11-alpine-eclipse-temurin`, `11-jre11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/11.0/jre11-alpine/Dockerfile) -- [`11.0.18-jre11`, `11.0-jre11`, `11-jre11`, `11.0.18-jre11-eclipse-temurin`, `11.0-jre11-eclipse-temurin`, `11-jre11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/11.0/jre11/Dockerfile) -- [`11.0.18-jdk17-alpine`, `11.0-jdk17-alpine`, `11-jdk17-alpine`, `11.0.18-jdk17-alpine-eclipse-temurin`, `11.0-jdk17-alpine-eclipse-temurin`, `11-jdk17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/11.0/jdk17-alpine/Dockerfile) -- [`11.0.18`, `11.0`, `11`, `11.0.18-jdk17`, `11.0-jdk17`, `11-jdk17`, `11.0.18-eclipse-temurin`, `11.0-eclipse-temurin`, `11-eclipse-temurin`, `11.0.18-jdk17-eclipse-temurin`, `11.0-jdk17-eclipse-temurin`, `11-jdk17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/11.0/jdk17/Dockerfile) -- [`11.0.18-jdk11-alpine`, `11.0-jdk11-alpine`, `11-jdk11-alpine`, `11.0.18-jdk11-alpine-eclipse-temurin`, `11.0-jdk11-alpine-eclipse-temurin`, `11-jdk11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/11.0/jdk11-alpine/Dockerfile) -- [`11.0.18-jdk11`, `11.0-jdk11`, `11-jdk11`, `11.0.18-jdk11-eclipse-temurin`, `11.0-jdk11-eclipse-temurin`, `11-jdk11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/11.0/jdk11/Dockerfile) -- [`10.0.18-jre17-alpine`, `10.0-jre17-alpine`, `10-jre17-alpine`, `10.0.18-jre17-alpine-eclipse-temurin`, `10.0-jre17-alpine-eclipse-temurin`, `10-jre17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/10.0/jre17-alpine/Dockerfile) -- [`10.0.18-jre17`, `10.0-jre17`, `10-jre17`, `10.0.18-jre17-eclipse-temurin`, `10.0-jre17-eclipse-temurin`, `10-jre17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/10.0/jre17/Dockerfile) -- [`10.0.18-jre11-alpine`, `10.0-jre11-alpine`, `10-jre11-alpine`, `10.0.18-jre11-alpine-eclipse-temurin`, `10.0-jre11-alpine-eclipse-temurin`, `10-jre11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/10.0/jre11-alpine/Dockerfile) -- [`10.0.18-jre11`, `10.0-jre11`, `10-jre11`, `10.0.18-jre11-eclipse-temurin`, `10.0-jre11-eclipse-temurin`, `10-jre11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/10.0/jre11/Dockerfile) -- [`10.0.18-jdk17-alpine`, `10.0-jdk17-alpine`, `10-jdk17-alpine`, `10.0.18-jdk17-alpine-eclipse-temurin`, `10.0-jdk17-alpine-eclipse-temurin`, `10-jdk17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/10.0/jdk17-alpine/Dockerfile) -- [`10.0.18`, `10.0`, `10`, `10.0.18-jdk17`, `10.0-jdk17`, `10-jdk17`, `10.0.18-eclipse-temurin`, `10.0-eclipse-temurin`, `10-eclipse-temurin`, `10.0.18-jdk17-eclipse-temurin`, `10.0-jdk17-eclipse-temurin`, `10-jdk17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/10.0/jdk17/Dockerfile) -- [`10.0.18-jdk11-alpine`, `10.0-jdk11-alpine`, `10-jdk11-alpine`, `10.0.18-jdk11-alpine-eclipse-temurin`, `10.0-jdk11-alpine-eclipse-temurin`, `10-jdk11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/10.0/jdk11-alpine/Dockerfile) -- [`10.0.18-jdk11`, `10.0-jdk11`, `10-jdk11`, `10.0.18-jdk11-eclipse-temurin`, `10.0-jdk11-eclipse-temurin`, `10-jdk11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/eclipse-temurin/10.0/jdk11/Dockerfile) -- [`9.4.53-jdk8-alpine-amazoncorretto`, `9.4-jdk8-alpine-amazoncorretto`, `9-jdk8-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/amazoncorretto/9.4/jdk8-alpine/Dockerfile) -- [`9.4.53-jdk8-amazoncorretto`, `9.4-jdk8-amazoncorretto`, `9-jdk8-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/amazoncorretto/9.4/jdk8/Dockerfile) -- [`9.4.53-jdk17-alpine-amazoncorretto`, `9.4-jdk17-alpine-amazoncorretto`, `9-jdk17-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/amazoncorretto/9.4/jdk17-alpine/Dockerfile) -- [`9.4.53-amazoncorretto`, `9.4-amazoncorretto`, `9-amazoncorretto`, `9.4.53-jdk17-amazoncorretto`, `9.4-jdk17-amazoncorretto`, `9-jdk17-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/amazoncorretto/9.4/jdk17/Dockerfile) -- [`9.4.53-jdk11-alpine-amazoncorretto`, `9.4-jdk11-alpine-amazoncorretto`, `9-jdk11-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/amazoncorretto/9.4/jdk11-alpine/Dockerfile) -- [`9.4.53-jdk11-amazoncorretto`, `9.4-jdk11-amazoncorretto`, `9-jdk11-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/d06dfc8b8dbbc3eba71c007e359e1ca0a7e85dff/amazoncorretto/9.4/jdk11/Dockerfile) -- [`12.0.3-jdk17-alpine-amazoncorretto`, `12.0-jdk17-alpine-amazoncorretto`, `12-jdk17-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/12.0/jdk17-alpine/Dockerfile) -- [`12.0.3-amazoncorretto`, `12.0-amazoncorretto`, `12-amazoncorretto`, `12.0.3-jdk17-amazoncorretto`, `12.0-jdk17-amazoncorretto`, `12-jdk17-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/12.0/jdk17/Dockerfile) -- [`11.0.18-jdk17-alpine-amazoncorretto`, `11.0-jdk17-alpine-amazoncorretto`, `11-jdk17-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/11.0/jdk17-alpine/Dockerfile) -- [`11.0.18-amazoncorretto`, `11.0-amazoncorretto`, `11-amazoncorretto`, `11.0.18-jdk17-amazoncorretto`, `11.0-jdk17-amazoncorretto`, `11-jdk17-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/11.0/jdk17/Dockerfile) -- [`11.0.18-jdk11-alpine-amazoncorretto`, `11.0-jdk11-alpine-amazoncorretto`, `11-jdk11-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/11.0/jdk11-alpine/Dockerfile) -- [`11.0.18-jdk11-amazoncorretto`, `11.0-jdk11-amazoncorretto`, `11-jdk11-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/11.0/jdk11/Dockerfile) -- [`10.0.18-jdk17-alpine-amazoncorretto`, `10.0-jdk17-alpine-amazoncorretto`, `10-jdk17-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/10.0/jdk17-alpine/Dockerfile) -- [`10.0.18-amazoncorretto`, `10.0-amazoncorretto`, `10-amazoncorretto`, `10.0.18-jdk17-amazoncorretto`, `10.0-jdk17-amazoncorretto`, `10-jdk17-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/10.0/jdk17/Dockerfile) -- [`10.0.18-jdk11-alpine-amazoncorretto`, `10.0-jdk11-alpine-amazoncorretto`, `10-jdk11-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/10.0/jdk11-alpine/Dockerfile) -- [`10.0.18-jdk11-amazoncorretto`, `10.0-jdk11-amazoncorretto`, `10-jdk11-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/a23ba914308dd1439bd177ad3f36a380402f2d16/amazoncorretto/10.0/jdk11/Dockerfile) +- [`9.4.57-jre8-alpine`, `9.4-jre8-alpine`, `9-jre8-alpine`, `9.4.57-jre8-alpine-eclipse-temurin`, `9.4-jre8-alpine-eclipse-temurin`, `9-jre8-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jre8-alpine/Dockerfile) + +- [`9.4.57-jre8`, `9.4-jre8`, `9-jre8`, `9.4.57-jre8-eclipse-temurin`, `9.4-jre8-eclipse-temurin`, `9-jre8-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jre8/Dockerfile) + +- [`9.4.57-jre21-alpine`, `9.4-jre21-alpine`, `9-jre21-alpine`, `9.4.57-jre21-alpine-eclipse-temurin`, `9.4-jre21-alpine-eclipse-temurin`, `9-jre21-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jre21-alpine/Dockerfile) + +- [`9.4.57-jre21`, `9.4-jre21`, `9-jre21`, `9.4.57-jre21-eclipse-temurin`, `9.4-jre21-eclipse-temurin`, `9-jre21-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jre21/Dockerfile) + +- [`9.4.57-jre17-alpine`, `9.4-jre17-alpine`, `9-jre17-alpine`, `9.4.57-jre17-alpine-eclipse-temurin`, `9.4-jre17-alpine-eclipse-temurin`, `9-jre17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jre17-alpine/Dockerfile) + +- [`9.4.57-jre17`, `9.4-jre17`, `9-jre17`, `9.4.57-jre17-eclipse-temurin`, `9.4-jre17-eclipse-temurin`, `9-jre17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jre17/Dockerfile) + +- [`9.4.57-jre11-alpine`, `9.4-jre11-alpine`, `9-jre11-alpine`, `9.4.57-jre11-alpine-eclipse-temurin`, `9.4-jre11-alpine-eclipse-temurin`, `9-jre11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jre11-alpine/Dockerfile) + +- [`9.4.57-jre11`, `9.4-jre11`, `9-jre11`, `9.4.57-jre11-eclipse-temurin`, `9.4-jre11-eclipse-temurin`, `9-jre11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jre11/Dockerfile) + +- [`9.4.57-jdk8`, `9.4-jdk8`, `9-jdk8`, `9.4.57-jdk8-eclipse-temurin`, `9.4-jdk8-eclipse-temurin`, `9-jdk8-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/34d907c9ea97a79faefe7d80e5a24f32b53a4f13/eclipse-temurin/9.4/jdk8/Dockerfile) + +- [`9.4.57-jdk21-alpine`, `9.4-jdk21-alpine`, `9-jdk21-alpine`, `9.4.57-jdk21-alpine-eclipse-temurin`, `9.4-jdk21-alpine-eclipse-temurin`, `9-jdk21-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jdk21-alpine/Dockerfile) + +- [`9.4.57`, `9.4`, `9`, `9.4.57-jdk21`, `9.4-jdk21`, `9-jdk21`, `9.4.57-eclipse-temurin`, `9.4-eclipse-temurin`, `9-eclipse-temurin`, `9.4.57-jdk21-eclipse-temurin`, `9.4-jdk21-eclipse-temurin`, `9-jdk21-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jdk21/Dockerfile) + +- [`9.4.57-jdk17-alpine`, `9.4-jdk17-alpine`, `9-jdk17-alpine`, `9.4.57-jdk17-alpine-eclipse-temurin`, `9.4-jdk17-alpine-eclipse-temurin`, `9-jdk17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jdk17-alpine/Dockerfile) + +- [`9.4.57-jdk17`, `9.4-jdk17`, `9-jdk17`, `9.4.57-jdk17-eclipse-temurin`, `9.4-jdk17-eclipse-temurin`, `9-jdk17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/34d907c9ea97a79faefe7d80e5a24f32b53a4f13/eclipse-temurin/9.4/jdk17/Dockerfile) + +- [`9.4.57-jdk11-alpine`, `9.4-jdk11-alpine`, `9-jdk11-alpine`, `9.4.57-jdk11-alpine-eclipse-temurin`, `9.4-jdk11-alpine-eclipse-temurin`, `9-jdk11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/eclipse-temurin/9.4/jdk11-alpine/Dockerfile) + +- [`9.4.57-jdk11`, `9.4-jdk11`, `9-jdk11`, `9.4.57-jdk11-eclipse-temurin`, `9.4-jdk11-eclipse-temurin`, `9-jdk11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/34d907c9ea97a79faefe7d80e5a24f32b53a4f13/eclipse-temurin/9.4/jdk11/Dockerfile) + +- [`12.0.22-jre21-alpine`, `12.0-jre21-alpine`, `12-jre21-alpine`, `12.0.22-jre21-alpine-eclipse-temurin`, `12.0-jre21-alpine-eclipse-temurin`, `12-jre21-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jre21-alpine/Dockerfile) + +- [`12.0.22-jre21`, `12.0-jre21`, `12-jre21`, `12.0.22-jre21-eclipse-temurin`, `12.0-jre21-eclipse-temurin`, `12-jre21-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jre21/Dockerfile) + +- [`12.0.22-jre17-alpine`, `12.0-jre17-alpine`, `12-jre17-alpine`, `12.0.22-jre17-alpine-eclipse-temurin`, `12.0-jre17-alpine-eclipse-temurin`, `12-jre17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jre17-alpine/Dockerfile) + +- [`12.0.22-jre17`, `12.0-jre17`, `12-jre17`, `12.0.22-jre17-eclipse-temurin`, `12.0-jre17-eclipse-temurin`, `12-jre17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jre17/Dockerfile) + +- [`12.0.22-jdk24-alpine`, `12.0-jdk24-alpine`, `12-jdk24-alpine`, `12.0.22-jdk24-alpine-eclipse-temurin`, `12.0-jdk24-alpine-eclipse-temurin`, `12-jdk24-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jdk24-alpine/Dockerfile) + +- [`12.0.22-jdk24`, `12.0-jdk24`, `12-jdk24`, `12.0.22-jdk24-eclipse-temurin`, `12.0-jdk24-eclipse-temurin`, `12-jdk24-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jdk24/Dockerfile) + +- [`12.0.22-jdk21-alpine`, `12.0-jdk21-alpine`, `12-jdk21-alpine`, `12.0.22-jdk21-alpine-eclipse-temurin`, `12.0-jdk21-alpine-eclipse-temurin`, `12-jdk21-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jdk21-alpine/Dockerfile) + +- [`12.0.22`, `12.0`, `12`, `12.0.22-jdk21`, `12.0-jdk21`, `12-jdk21`, `12.0.22-eclipse-temurin`, `12.0-eclipse-temurin`, `12-eclipse-temurin`, `12.0.22-jdk21-eclipse-temurin`, `12.0-jdk21-eclipse-temurin`, `12-jdk21-eclipse-temurin`, `latest`, `jdk21`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jdk21/Dockerfile) + +- [`12.0.22-jdk17-alpine`, `12.0-jdk17-alpine`, `12-jdk17-alpine`, `12.0.22-jdk17-alpine-eclipse-temurin`, `12.0-jdk17-alpine-eclipse-temurin`, `12-jdk17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jdk17-alpine/Dockerfile) + +- [`12.0.22-jdk17`, `12.0-jdk17`, `12-jdk17`, `12.0.22-jdk17-eclipse-temurin`, `12.0-jdk17-eclipse-temurin`, `12-jdk17-eclipse-temurin`, `jdk17`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/eclipse-temurin/12.0/jdk17/Dockerfile) + +- [`11.0.25-jre21-alpine`, `11.0-jre21-alpine`, `11-jre21-alpine`, `11.0.25-jre21-alpine-eclipse-temurin`, `11.0-jre21-alpine-eclipse-temurin`, `11-jre21-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jre21-alpine/Dockerfile) + +- [`11.0.25-jre21`, `11.0-jre21`, `11-jre21`, `11.0.25-jre21-eclipse-temurin`, `11.0-jre21-eclipse-temurin`, `11-jre21-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jre21/Dockerfile) + +- [`11.0.25-jre17-alpine`, `11.0-jre17-alpine`, `11-jre17-alpine`, `11.0.25-jre17-alpine-eclipse-temurin`, `11.0-jre17-alpine-eclipse-temurin`, `11-jre17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jre17-alpine/Dockerfile) + +- [`11.0.25-jre17`, `11.0-jre17`, `11-jre17`, `11.0.25-jre17-eclipse-temurin`, `11.0-jre17-eclipse-temurin`, `11-jre17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jre17/Dockerfile) + +- [`11.0.25-jre11-alpine`, `11.0-jre11-alpine`, `11-jre11-alpine`, `11.0.25-jre11-alpine-eclipse-temurin`, `11.0-jre11-alpine-eclipse-temurin`, `11-jre11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jre11-alpine/Dockerfile) + +- [`11.0.25-jre11`, `11.0-jre11`, `11-jre11`, `11.0.25-jre11-eclipse-temurin`, `11.0-jre11-eclipse-temurin`, `11-jre11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jre11/Dockerfile) + +- [`11.0.25-jdk21-alpine`, `11.0-jdk21-alpine`, `11-jdk21-alpine`, `11.0.25-jdk21-alpine-eclipse-temurin`, `11.0-jdk21-alpine-eclipse-temurin`, `11-jdk21-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jdk21-alpine/Dockerfile) + +- [`11.0.25`, `11.0`, `11`, `11.0.25-jdk21`, `11.0-jdk21`, `11-jdk21`, `11.0.25-eclipse-temurin`, `11.0-eclipse-temurin`, `11-eclipse-temurin`, `11.0.25-jdk21-eclipse-temurin`, `11.0-jdk21-eclipse-temurin`, `11-jdk21-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jdk21/Dockerfile) + +- [`11.0.25-jdk17-alpine`, `11.0-jdk17-alpine`, `11-jdk17-alpine`, `11.0.25-jdk17-alpine-eclipse-temurin`, `11.0-jdk17-alpine-eclipse-temurin`, `11-jdk17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jdk17-alpine/Dockerfile) + +- [`11.0.25-jdk17`, `11.0-jdk17`, `11-jdk17`, `11.0.25-jdk17-eclipse-temurin`, `11.0-jdk17-eclipse-temurin`, `11-jdk17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/34d907c9ea97a79faefe7d80e5a24f32b53a4f13/eclipse-temurin/11.0/jdk17/Dockerfile) + +- [`11.0.25-jdk11-alpine`, `11.0-jdk11-alpine`, `11-jdk11-alpine`, `11.0.25-jdk11-alpine-eclipse-temurin`, `11.0-jdk11-alpine-eclipse-temurin`, `11-jdk11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/11.0/jdk11-alpine/Dockerfile) + +- [`11.0.25-jdk11`, `11.0-jdk11`, `11-jdk11`, `11.0.25-jdk11-eclipse-temurin`, `11.0-jdk11-eclipse-temurin`, `11-jdk11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/34d907c9ea97a79faefe7d80e5a24f32b53a4f13/eclipse-temurin/11.0/jdk11/Dockerfile) + +- [`10.0.25-jre21-alpine`, `10.0-jre21-alpine`, `10-jre21-alpine`, `10.0.25-jre21-alpine-eclipse-temurin`, `10.0-jre21-alpine-eclipse-temurin`, `10-jre21-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jre21-alpine/Dockerfile) + +- [`10.0.25-jre21`, `10.0-jre21`, `10-jre21`, `10.0.25-jre21-eclipse-temurin`, `10.0-jre21-eclipse-temurin`, `10-jre21-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jre21/Dockerfile) + +- [`10.0.25-jre17-alpine`, `10.0-jre17-alpine`, `10-jre17-alpine`, `10.0.25-jre17-alpine-eclipse-temurin`, `10.0-jre17-alpine-eclipse-temurin`, `10-jre17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jre17-alpine/Dockerfile) + +- [`10.0.25-jre17`, `10.0-jre17`, `10-jre17`, `10.0.25-jre17-eclipse-temurin`, `10.0-jre17-eclipse-temurin`, `10-jre17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jre17/Dockerfile) + +- [`10.0.25-jre11-alpine`, `10.0-jre11-alpine`, `10-jre11-alpine`, `10.0.25-jre11-alpine-eclipse-temurin`, `10.0-jre11-alpine-eclipse-temurin`, `10-jre11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jre11-alpine/Dockerfile) + +- [`10.0.25-jre11`, `10.0-jre11`, `10-jre11`, `10.0.25-jre11-eclipse-temurin`, `10.0-jre11-eclipse-temurin`, `10-jre11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jre11/Dockerfile) + +- [`10.0.25-jdk21-alpine`, `10.0-jdk21-alpine`, `10-jdk21-alpine`, `10.0.25-jdk21-alpine-eclipse-temurin`, `10.0-jdk21-alpine-eclipse-temurin`, `10-jdk21-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jdk21-alpine/Dockerfile) + +- [`10.0.25`, `10.0`, `10`, `10.0.25-jdk21`, `10.0-jdk21`, `10-jdk21`, `10.0.25-eclipse-temurin`, `10.0-eclipse-temurin`, `10-eclipse-temurin`, `10.0.25-jdk21-eclipse-temurin`, `10.0-jdk21-eclipse-temurin`, `10-jdk21-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jdk21/Dockerfile) + +- [`10.0.25-jdk17-alpine`, `10.0-jdk17-alpine`, `10-jdk17-alpine`, `10.0.25-jdk17-alpine-eclipse-temurin`, `10.0-jdk17-alpine-eclipse-temurin`, `10-jdk17-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jdk17-alpine/Dockerfile) + +- [`10.0.25-jdk17`, `10.0-jdk17`, `10-jdk17`, `10.0.25-jdk17-eclipse-temurin`, `10.0-jdk17-eclipse-temurin`, `10-jdk17-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/34d907c9ea97a79faefe7d80e5a24f32b53a4f13/eclipse-temurin/10.0/jdk17/Dockerfile) + +- [`10.0.25-jdk11-alpine`, `10.0-jdk11-alpine`, `10-jdk11-alpine`, `10.0.25-jdk11-alpine-eclipse-temurin`, `10.0-jdk11-alpine-eclipse-temurin`, `10-jdk11-alpine-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/eclipse-temurin/10.0/jdk11-alpine/Dockerfile) + +- [`10.0.25-jdk11`, `10.0-jdk11`, `10-jdk11`, `10.0.25-jdk11-eclipse-temurin`, `10.0-jdk11-eclipse-temurin`, `10-jdk11-eclipse-temurin`](https://github.com/eclipse/jetty.docker/blob/34d907c9ea97a79faefe7d80e5a24f32b53a4f13/eclipse-temurin/10.0/jdk11/Dockerfile) + +- [`9.4.57-jdk8-alpine-amazoncorretto`, `9.4-jdk8-alpine-amazoncorretto`, `9-jdk8-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/amazoncorretto/9.4/jdk8-alpine/Dockerfile) + +- [`9.4.57-jdk8-amazoncorretto`, `9.4-jdk8-amazoncorretto`, `9-jdk8-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/amazoncorretto/9.4/jdk8/Dockerfile) + +- [`9.4.57-jdk21-alpine-amazoncorretto`, `9.4-jdk21-alpine-amazoncorretto`, `9-jdk21-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/amazoncorretto/9.4/jdk21-alpine/Dockerfile) + +- [`9.4.57-amazoncorretto`, `9.4-amazoncorretto`, `9-amazoncorretto`, `9.4.57-jdk21-amazoncorretto`, `9.4-jdk21-amazoncorretto`, `9-jdk21-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/amazoncorretto/9.4/jdk21/Dockerfile) + +- [`9.4.57-jdk17-alpine-amazoncorretto`, `9.4-jdk17-alpine-amazoncorretto`, `9-jdk17-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/amazoncorretto/9.4/jdk17-alpine/Dockerfile) + +- [`9.4.57-jdk17-amazoncorretto`, `9.4-jdk17-amazoncorretto`, `9-jdk17-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/amazoncorretto/9.4/jdk17/Dockerfile) + +- [`9.4.57-jdk11-alpine-amazoncorretto`, `9.4-jdk11-alpine-amazoncorretto`, `9-jdk11-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/amazoncorretto/9.4/jdk11-alpine/Dockerfile) + +- [`9.4.57-jdk11-amazoncorretto`, `9.4-jdk11-amazoncorretto`, `9-jdk11-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/446d2207a126e7afe059328bc3641731d2cbd74e/amazoncorretto/9.4/jdk11/Dockerfile) + +- [`12.0.22-jdk24-al2023-amazoncorretto`, `12.0-jdk24-al2023-amazoncorretto`, `12-jdk24-al2023-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/amazoncorretto/12.0/jdk24-al2023/Dockerfile) + +- [`12.0.22-jdk21-alpine-amazoncorretto`, `12.0-jdk21-alpine-amazoncorretto`, `12-jdk21-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/amazoncorretto/12.0/jdk21-alpine/Dockerfile) + +- [`12.0.22-jdk21-al2023-amazoncorretto`, `12.0-jdk21-al2023-amazoncorretto`, `12-jdk21-al2023-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/amazoncorretto/12.0/jdk21-al2023/Dockerfile) + +- [`12.0.22-amazoncorretto`, `12.0-amazoncorretto`, `12-amazoncorretto`, `12.0.22-jdk21-amazoncorretto`, `12.0-jdk21-amazoncorretto`, `12-jdk21-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/amazoncorretto/12.0/jdk21/Dockerfile) + +- [`12.0.22-jdk17-alpine-amazoncorretto`, `12.0-jdk17-alpine-amazoncorretto`, `12-jdk17-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/amazoncorretto/12.0/jdk17-alpine/Dockerfile) + +- [`12.0.22-jdk17-al2023-amazoncorretto`, `12.0-jdk17-al2023-amazoncorretto`, `12-jdk17-al2023-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/amazoncorretto/12.0/jdk17-al2023/Dockerfile) + +- [`12.0.22-jdk17-amazoncorretto`, `12.0-jdk17-amazoncorretto`, `12-jdk17-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/23b358279dbdb246f24a3ebc52fa0bee11d91b74/amazoncorretto/12.0/jdk17/Dockerfile) + +- [`11.0.25-jdk21-alpine-amazoncorretto`, `11.0-jdk21-alpine-amazoncorretto`, `11-jdk21-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/11.0/jdk21-alpine/Dockerfile) + +- [`11.0.25-amazoncorretto`, `11.0-amazoncorretto`, `11-amazoncorretto`, `11.0.25-jdk21-amazoncorretto`, `11.0-jdk21-amazoncorretto`, `11-jdk21-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/11.0/jdk21/Dockerfile) + +- [`11.0.25-jdk17-alpine-amazoncorretto`, `11.0-jdk17-alpine-amazoncorretto`, `11-jdk17-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/11.0/jdk17-alpine/Dockerfile) + +- [`11.0.25-jdk17-amazoncorretto`, `11.0-jdk17-amazoncorretto`, `11-jdk17-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/11.0/jdk17/Dockerfile) + +- [`11.0.25-jdk11-alpine-amazoncorretto`, `11.0-jdk11-alpine-amazoncorretto`, `11-jdk11-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/11.0/jdk11-alpine/Dockerfile) + +- [`11.0.25-jdk11-amazoncorretto`, `11.0-jdk11-amazoncorretto`, `11-jdk11-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/11.0/jdk11/Dockerfile) + +- [`10.0.25-jdk21-alpine-amazoncorretto`, `10.0-jdk21-alpine-amazoncorretto`, `10-jdk21-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/10.0/jdk21-alpine/Dockerfile) + +- [`10.0.25-amazoncorretto`, `10.0-amazoncorretto`, `10-amazoncorretto`, `10.0.25-jdk21-amazoncorretto`, `10.0-jdk21-amazoncorretto`, `10-jdk21-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/10.0/jdk21/Dockerfile) + +- [`10.0.25-jdk17-alpine-amazoncorretto`, `10.0-jdk17-alpine-amazoncorretto`, `10-jdk17-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/10.0/jdk17-alpine/Dockerfile) + +- [`10.0.25-jdk17-amazoncorretto`, `10.0-jdk17-amazoncorretto`, `10-jdk17-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/10.0/jdk17/Dockerfile) + +- [`10.0.25-jdk11-alpine-amazoncorretto`, `10.0-jdk11-alpine-amazoncorretto`, `10-jdk11-alpine-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/10.0/jdk11-alpine/Dockerfile) + +- [`10.0.25-jdk11-amazoncorretto`, `10.0-jdk11-amazoncorretto`, `10-jdk11-amazoncorretto`](https://github.com/eclipse/jetty.docker/blob/354499910a5a61631cea6a8679f2d11f054c2ecb/amazoncorretto/10.0/jdk11/Dockerfile) # Quick reference (cont.) diff --git a/jetty/metadata.json b/jetty/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/jetty/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/jobber/README-short.txt b/jobber/README-short.txt deleted file mode 100644 index e9bb50e633e3..000000000000 --- a/jobber/README-short.txt +++ /dev/null @@ -1 +0,0 @@ -DEPRECATED; Jobber is an alternative to cron, with sophisticated status-reporting and error-handling diff --git a/jobber/README.md b/jobber/README.md deleted file mode 100644 index 389fc3c6c4ee..000000000000 --- a/jobber/README.md +++ /dev/null @@ -1,74 +0,0 @@ - - -# **DEPRECATION NOTICE** - -This project is not actively maintained. See [dshearer/jobber#334](https://github.com/dshearer/jobber/pull/334) for more details. - -# Quick reference - -- **Maintained by**: - [Jobber](https://github.com/dshearer/jobber-docker) - -- **Where to get help**: - [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) - -# Supported tags and respective `Dockerfile` links - -- [`1.4.4-alpine3.11`, `1.4-alpine3.11`, `1-alpine3.11`, `latest`](https://github.com/dshearer/jobber-docker/blob/cd07d76987097b5389aa9be5f48df041aa74d699/alpine3.11/Dockerfile) - -# Quick reference (cont.) - -- **Where to file issues**: - [https://github.com/dshearer/jobber-docker/issues](https://github.com/dshearer/jobber-docker/issues?q=) - -- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/jobber/) - -- **Published image artifact details**: - [repo-info repo's `repos/jobber/` directory](https://github.com/docker-library/repo-info/blob/master/repos/jobber) ([history](https://github.com/docker-library/repo-info/commits/master/repos/jobber)) - (image metadata, transfer size, etc) - -- **Image updates**: - [official-images repo's `library/jobber` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fjobber) - [official-images repo's `library/jobber` file](https://github.com/docker-library/official-images/blob/master/library/jobber) ([history](https://github.com/docker-library/official-images/commits/master/library/jobber)) - -- **Source of this description**: - [docs repo's `jobber/` directory](https://github.com/docker-library/docs/tree/master/jobber) ([history](https://github.com/docker-library/docs/commits/master/jobber)) - -# What is Jobber? - -Jobber is a utility for Unix-like systems that can run arbitrary commands, or "jobs", according to a schedule. It is meant to be a better alternative to the classic Unix utility cron. - -Along with the functionality of cron, Jobber also provides: - -- **Job execution history:** you can see what jobs have recently run, and whether they succeeded or failed. -- **Sophisticated error handling:** you can control whether and when a job is run again after it fails. For example, after an initial failure of a job, Jobber can schedule future runs using an exponential backoff algorithm. -- **Sophisticated error reporting:** you can control whether Jobber notifies you about each failed run, or only about jobs that have been disabled due to repeated failures. - -# How to use this image - -This image contains Jobber running as an unprivileged user named "jobberuser". The jobs are defined in the file /home/jobberuser/.jobber. By default, the only job is one that prints "Jobber is running!" every second. You should replace it with your own jobs. Refer to [the documentation](https://dshearer.github.io/jobber/doc/v1.4/#jobfile) to learn how to do this. - -# License - -[Jobber's license](https://github.com/dshearer/jobber/blob/master/LICENSE) - -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). - -Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `jobber/` directory](https://github.com/docker-library/repo-info/tree/master/repos/jobber). - -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. diff --git a/jobber/content.md b/jobber/content.md deleted file mode 100644 index bfda592de2a6..000000000000 --- a/jobber/content.md +++ /dev/null @@ -1,13 +0,0 @@ -# What is Jobber? - -Jobber is a utility for Unix-like systems that can run arbitrary commands, or "jobs", according to a schedule. It is meant to be a better alternative to the classic Unix utility cron. - -Along with the functionality of cron, Jobber also provides: - -- **Job execution history:** you can see what jobs have recently run, and whether they succeeded or failed. -- **Sophisticated error handling:** you can control whether and when a job is run again after it fails. For example, after an initial failure of a job, Jobber can schedule future runs using an exponential backoff algorithm. -- **Sophisticated error reporting:** you can control whether Jobber notifies you about each failed run, or only about jobs that have been disabled due to repeated failures. - -# How to use this image - -This image contains Jobber running as an unprivileged user named "jobberuser". The jobs are defined in the file /home/jobberuser/.jobber. By default, the only job is one that prints "Jobber is running!" every second. You should replace it with your own jobs. Refer to [the documentation](https://dshearer.github.io/jobber/doc/v1.4/#jobfile) to learn how to do this. diff --git a/jobber/deprecated.md b/jobber/deprecated.md deleted file mode 100644 index 4ebe5963e7d0..000000000000 --- a/jobber/deprecated.md +++ /dev/null @@ -1 +0,0 @@ -This project is not actively maintained. See [dshearer/jobber#334](https://github.com/dshearer/jobber/pull/334) for more details. diff --git a/jobber/github-repo b/jobber/github-repo deleted file mode 100644 index f2974babe9c4..000000000000 --- a/jobber/github-repo +++ /dev/null @@ -1 +0,0 @@ -https://github.com/dshearer/jobber-docker diff --git a/jobber/license.md b/jobber/license.md deleted file mode 100644 index 91922f4333e3..000000000000 --- a/jobber/license.md +++ /dev/null @@ -1 +0,0 @@ -[Jobber's license](https://github.com/dshearer/jobber/blob/master/LICENSE) diff --git a/jobber/maintainer.md b/jobber/maintainer.md deleted file mode 100644 index bc73df28e84d..000000000000 --- a/jobber/maintainer.md +++ /dev/null @@ -1 +0,0 @@ -[Jobber](%%GITHUB-REPO%%) diff --git a/joomla/README.md b/joomla/README.md index d9038da2ed86..34b9995edbc9 100644 --- a/joomla/README.md +++ b/joomla/README.md @@ -17,48 +17,68 @@ WARNING: # Quick reference - **Maintained by**: - [Joomla!](https://github.com/joomla/docker-joomla) + [Joomla!](https://github.com/joomla-docker/docker-joomla) - **Where to get help**: [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) # Supported tags and respective `Dockerfile` links -- [`5.0.0-php8.1-apache`, `5.0-php8.1-apache`, `5-php8.1-apache`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/5.0/php8.1/apache/Dockerfile) -- [`5.0.0-php8.1-fpm-alpine`, `5.0-php8.1-fpm-alpine`, `5-php8.1-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/5.0/php8.1/fpm-alpine/Dockerfile) -- [`5.0.0-php8.1-fpm`, `5.0-php8.1-fpm`, `5-php8.1-fpm`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/5.0/php8.1/fpm/Dockerfile) -- [`5.0.0`, `5.0`, `5`, `5.0.0-apache`, `5.0-apache`, `5-apache`, `5.0.0-php8.2`, `5.0-php8.2`, `5-php8.2`, `5.0.0-php8.2-apache`, `5.0-php8.2-apache`, `5-php8.2-apache`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/5.0/php8.2/apache/Dockerfile) -- [`5.0.0-php8.2-fpm-alpine`, `5.0-php8.2-fpm-alpine`, `5-php8.2-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/5.0/php8.2/fpm-alpine/Dockerfile) -- [`5.0.0-php8.2-fpm`, `5.0-php8.2-fpm`, `5-php8.2-fpm`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/5.0/php8.2/fpm/Dockerfile) -- [`4.4.0-php8.0-apache`, `4.4-php8.0-apache`, `4-php8.0-apache`, `php8.0-apache`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.4/php8.0/apache/Dockerfile) -- [`4.4.0-php8.0-fpm-alpine`, `4.4-php8.0-fpm-alpine`, `4-php8.0-fpm-alpine`, `php8.0-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.4/php8.0/fpm-alpine/Dockerfile) -- [`4.4.0-php8.0-fpm`, `4.4-php8.0-fpm`, `4-php8.0-fpm`, `php8.0-fpm`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.4/php8.0/fpm/Dockerfile) -- [`4.4.0`, `4.4`, `4`, `latest`, `4.4.0-apache`, `4.4-apache`, `4-apache`, `apache`, `4.4.0-php8.1`, `4.4-php8.1`, `4-php8.1`, `php8.1`, `4.4.0-php8.1-apache`, `4.4-php8.1-apache`, `4-php8.1-apache`, `php8.1-apache`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.4/php8.1/apache/Dockerfile) -- [`4.4.0-php8.1-fpm-alpine`, `4.4-php8.1-fpm-alpine`, `4-php8.1-fpm-alpine`, `php8.1-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.4/php8.1/fpm-alpine/Dockerfile) -- [`4.4.0-php8.1-fpm`, `4.4-php8.1-fpm`, `4-php8.1-fpm`, `php8.1-fpm`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.4/php8.1/fpm/Dockerfile) -- [`4.4.0-php8.2-apache`, `4.4-php8.2-apache`, `4-php8.2-apache`, `php8.2-apache`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.4/php8.2/apache/Dockerfile) -- [`4.4.0-php8.2-fpm-alpine`, `4.4-php8.2-fpm-alpine`, `4-php8.2-fpm-alpine`, `php8.2-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.4/php8.2/fpm-alpine/Dockerfile) -- [`4.4.0-php8.2-fpm`, `4.4-php8.2-fpm`, `4-php8.2-fpm`, `php8.2-fpm`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.4/php8.2/fpm/Dockerfile) -- [`4.3.4-php8.0-apache`, `4.3-php8.0-apache`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.3/php8.0/apache/Dockerfile) -- [`4.3.4-php8.0-fpm-alpine`, `4.3-php8.0-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.3/php8.0/fpm-alpine/Dockerfile) -- [`4.3.4-php8.0-fpm`, `4.3-php8.0-fpm`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.3/php8.0/fpm/Dockerfile) -- [`4.3.4`, `4.3`, `4.3.4-apache`, `4.3-apache`, `4.3.4-php8.1`, `4.3-php8.1`, `4.3.4-php8.1-apache`, `4.3-php8.1-apache`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.3/php8.1/apache/Dockerfile) -- [`4.3.4-php8.1-fpm-alpine`, `4.3-php8.1-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.3/php8.1/fpm-alpine/Dockerfile) -- [`4.3.4-php8.1-fpm`, `4.3-php8.1-fpm`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.3/php8.1/fpm/Dockerfile) -- [`4.3.4-php8.2-apache`, `4.3-php8.2-apache`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.3/php8.2/apache/Dockerfile) -- [`4.3.4-php8.2-fpm-alpine`, `4.3-php8.2-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.3/php8.2/fpm-alpine/Dockerfile) -- [`4.3.4-php8.2-fpm`, `4.3-php8.2-fpm`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/4.3/php8.2/fpm/Dockerfile) -- [`3.10.12`, `3.10`, `3`, `3.10.12-apache`, `3.10-apache`, `3-apache`, `3.10.12-php8.0`, `3.10-php8.0`, `3-php8.0`, `3.10.12-php8.0-apache`, `3.10-php8.0-apache`, `3-php8.0-apache`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/3.10/php8.0/apache/Dockerfile) -- [`3.10.12-php8.0-fpm-alpine`, `3.10-php8.0-fpm-alpine`, `3-php8.0-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/3.10/php8.0/fpm-alpine/Dockerfile) -- [`3.10.12-php8.0-fpm`, `3.10-php8.0-fpm`, `3-php8.0-fpm`](https://github.com/joomla-docker/docker-joomla/blob/ef73b7df0a255212a3334ee238d137f7dcde456f/3.10/php8.0/fpm/Dockerfile) +- [`6.0.0-alpha1`, `6.0`, `6.0.alpha`, `6.0.0-alpha`, `6.0.0-alpha1-apache`, `6.0-apache`, `6.0.alpha-apache`, `6.0.0-alpha-apache`, `6.0.0-alpha1-php8.3`, `6.0-php8.3`, `6.0.alpha-php8.3`, `6.0.0-alpha-php8.3`, `6.0.0-alpha1-php8.3-apache`, `6.0-php8.3-apache`, `6.0.alpha-php8.3-apache`, `6.0.0-alpha-php8.3-apache`](https://github.com/joomla-docker/docker-joomla/blob/edc4654f06694c7b8caed4a7297549f1bbca78a8/6.0.alpha/php8.3/apache/Dockerfile) + +- [`6.0.0-alpha1-php8.3-fpm-alpine`, `6.0-php8.3-fpm-alpine`, `6.0.alpha-php8.3-fpm-alpine`, `6.0.0-alpha-php8.3-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/edc4654f06694c7b8caed4a7297549f1bbca78a8/6.0.alpha/php8.3/fpm-alpine/Dockerfile) + +- [`6.0.0-alpha1-php8.3-fpm`, `6.0-php8.3-fpm`, `6.0.alpha-php8.3-fpm`, `6.0.0-alpha-php8.3-fpm`](https://github.com/joomla-docker/docker-joomla/blob/edc4654f06694c7b8caed4a7297549f1bbca78a8/6.0.alpha/php8.3/fpm/Dockerfile) + +- [`5.4.0-alpha1-php8.2-apache`, `5.4-php8.2-apache`, `5.4.alpha-php8.2-apache`, `5.4.0-alpha-php8.2-apache`](https://github.com/joomla-docker/docker-joomla/blob/c8469f6f946b5084b36382b529001d10ccef2acb/5.4.alpha/php8.2/apache/Dockerfile) + +- [`5.4.0-alpha1-php8.2-fpm-alpine`, `5.4-php8.2-fpm-alpine`, `5.4.alpha-php8.2-fpm-alpine`, `5.4.0-alpha-php8.2-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/c8469f6f946b5084b36382b529001d10ccef2acb/5.4.alpha/php8.2/fpm-alpine/Dockerfile) + +- [`5.4.0-alpha1-php8.2-fpm`, `5.4-php8.2-fpm`, `5.4.alpha-php8.2-fpm`, `5.4.0-alpha-php8.2-fpm`](https://github.com/joomla-docker/docker-joomla/blob/c8469f6f946b5084b36382b529001d10ccef2acb/5.4.alpha/php8.2/fpm/Dockerfile) + +- [`5.4.0-alpha1`, `5.4`, `5.4.alpha`, `5.4.0-alpha`, `5.4.0-alpha1-apache`, `5.4-apache`, `5.4.alpha-apache`, `5.4.0-alpha-apache`, `5.4.0-alpha1-php8.3`, `5.4-php8.3`, `5.4.alpha-php8.3`, `5.4.0-alpha-php8.3`, `5.4.0-alpha1-php8.3-apache`, `5.4-php8.3-apache`, `5.4.alpha-php8.3-apache`, `5.4.0-alpha-php8.3-apache`](https://github.com/joomla-docker/docker-joomla/blob/c8469f6f946b5084b36382b529001d10ccef2acb/5.4.alpha/php8.3/apache/Dockerfile) + +- [`5.4.0-alpha1-php8.3-fpm-alpine`, `5.4-php8.3-fpm-alpine`, `5.4.alpha-php8.3-fpm-alpine`, `5.4.0-alpha-php8.3-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/c8469f6f946b5084b36382b529001d10ccef2acb/5.4.alpha/php8.3/fpm-alpine/Dockerfile) + +- [`5.4.0-alpha1-php8.3-fpm`, `5.4-php8.3-fpm`, `5.4.alpha-php8.3-fpm`, `5.4.0-alpha-php8.3-fpm`](https://github.com/joomla-docker/docker-joomla/blob/c8469f6f946b5084b36382b529001d10ccef2acb/5.4.alpha/php8.3/fpm/Dockerfile) + +- [`5.3.1-php8.1-apache`, `5.3-php8.1-apache`, `5-php8.1-apache`, `php8.1-apache`](https://github.com/joomla-docker/docker-joomla/blob/5bd86402acfa528dac7dfa6eea3d27d0fc1de5f6/5.3/php8.1/apache/Dockerfile) + +- [`5.3.1-php8.1-fpm-alpine`, `5.3-php8.1-fpm-alpine`, `5-php8.1-fpm-alpine`, `php8.1-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/5bd86402acfa528dac7dfa6eea3d27d0fc1de5f6/5.3/php8.1/fpm-alpine/Dockerfile) + +- [`5.3.1-php8.1-fpm`, `5.3-php8.1-fpm`, `5-php8.1-fpm`, `php8.1-fpm`](https://github.com/joomla-docker/docker-joomla/blob/5bd86402acfa528dac7dfa6eea3d27d0fc1de5f6/5.3/php8.1/fpm/Dockerfile) + +- [`5.3.1-php8.2-apache`, `5.3-php8.2-apache`, `5-php8.2-apache`, `php8.2-apache`](https://github.com/joomla-docker/docker-joomla/blob/5bd86402acfa528dac7dfa6eea3d27d0fc1de5f6/5.3/php8.2/apache/Dockerfile) + +- [`5.3.1-php8.2-fpm-alpine`, `5.3-php8.2-fpm-alpine`, `5-php8.2-fpm-alpine`, `php8.2-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/5bd86402acfa528dac7dfa6eea3d27d0fc1de5f6/5.3/php8.2/fpm-alpine/Dockerfile) + +- [`5.3.1-php8.2-fpm`, `5.3-php8.2-fpm`, `5-php8.2-fpm`, `php8.2-fpm`](https://github.com/joomla-docker/docker-joomla/blob/5bd86402acfa528dac7dfa6eea3d27d0fc1de5f6/5.3/php8.2/fpm/Dockerfile) + +- [`5.3.1`, `5.3`, `5`, `latest`, `5.3.1-apache`, `5.3-apache`, `5-apache`, `apache`, `5.3.1-php8.3`, `5.3-php8.3`, `5-php8.3`, `php8.3`, `5.3.1-php8.3-apache`, `5.3-php8.3-apache`, `5-php8.3-apache`, `php8.3-apache`](https://github.com/joomla-docker/docker-joomla/blob/5bd86402acfa528dac7dfa6eea3d27d0fc1de5f6/5.3/php8.3/apache/Dockerfile) + +- [`5.3.1-php8.3-fpm-alpine`, `5.3-php8.3-fpm-alpine`, `5-php8.3-fpm-alpine`, `php8.3-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/5bd86402acfa528dac7dfa6eea3d27d0fc1de5f6/5.3/php8.3/fpm-alpine/Dockerfile) + +- [`5.3.1-php8.3-fpm`, `5.3-php8.3-fpm`, `5-php8.3-fpm`, `php8.3-fpm`](https://github.com/joomla-docker/docker-joomla/blob/5bd86402acfa528dac7dfa6eea3d27d0fc1de5f6/5.3/php8.3/fpm/Dockerfile) + +- [`4.4.13-php8.1-apache`, `4.4-php8.1-apache`, `4-php8.1-apache`](https://github.com/joomla-docker/docker-joomla/blob/2b32f0a2ba4ad99f15c0acd26b2f862c038ff3f5/4.4/php8.1/apache/Dockerfile) + +- [`4.4.13-php8.1-fpm-alpine`, `4.4-php8.1-fpm-alpine`, `4-php8.1-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/2b32f0a2ba4ad99f15c0acd26b2f862c038ff3f5/4.4/php8.1/fpm-alpine/Dockerfile) + +- [`4.4.13-php8.1-fpm`, `4.4-php8.1-fpm`, `4-php8.1-fpm`](https://github.com/joomla-docker/docker-joomla/blob/2b32f0a2ba4ad99f15c0acd26b2f862c038ff3f5/4.4/php8.1/fpm/Dockerfile) + +- [`4.4.13`, `4.4`, `4`, `4.4.13-apache`, `4.4-apache`, `4-apache`, `4.4.13-php8.2`, `4.4-php8.2`, `4-php8.2`, `4.4.13-php8.2-apache`, `4.4-php8.2-apache`, `4-php8.2-apache`](https://github.com/joomla-docker/docker-joomla/blob/2b32f0a2ba4ad99f15c0acd26b2f862c038ff3f5/4.4/php8.2/apache/Dockerfile) + +- [`4.4.13-php8.2-fpm-alpine`, `4.4-php8.2-fpm-alpine`, `4-php8.2-fpm-alpine`](https://github.com/joomla-docker/docker-joomla/blob/2b32f0a2ba4ad99f15c0acd26b2f862c038ff3f5/4.4/php8.2/fpm-alpine/Dockerfile) + +- [`4.4.13-php8.2-fpm`, `4.4-php8.2-fpm`, `4-php8.2-fpm`](https://github.com/joomla-docker/docker-joomla/blob/2b32f0a2ba4ad99f15c0acd26b2f862c038ff3f5/4.4/php8.2/fpm/Dockerfile) # Quick reference (cont.) - **Where to file issues**: - [https://github.com/joomla/docker-joomla/issues](https://github.com/joomla/docker-joomla/issues?q=) + [https://github.com/joomla-docker/docker-joomla/issues](https://github.com/joomla-docker/docker-joomla/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/joomla/), [`arm32v5`](https://hub.docker.com/r/arm32v5/joomla/), [`arm32v6`](https://hub.docker.com/r/arm32v6/joomla/), [`arm32v7`](https://hub.docker.com/r/arm32v7/joomla/), [`arm64v8`](https://hub.docker.com/r/arm64v8/joomla/), [`i386`](https://hub.docker.com/r/i386/joomla/), [`mips64le`](https://hub.docker.com/r/mips64le/joomla/), [`ppc64le`](https://hub.docker.com/r/ppc64le/joomla/), [`s390x`](https://hub.docker.com/r/s390x/joomla/) + [`amd64`](https://hub.docker.com/r/amd64/joomla/), [`arm32v5`](https://hub.docker.com/r/arm32v5/joomla/), [`arm32v6`](https://hub.docker.com/r/arm32v6/joomla/), [`arm32v7`](https://hub.docker.com/r/arm32v7/joomla/), [`arm64v8`](https://hub.docker.com/r/arm64v8/joomla/), [`i386`](https://hub.docker.com/r/i386/joomla/), [`mips64le`](https://hub.docker.com/r/mips64le/joomla/), [`ppc64le`](https://hub.docker.com/r/ppc64le/joomla/), [`riscv64`](https://hub.docker.com/r/riscv64/joomla/), [`s390x`](https://hub.docker.com/r/s390x/joomla/) - **Published image artifact details**: [repo-info repo's `repos/joomla/` directory](https://github.com/docker-library/repo-info/blob/master/repos/joomla) ([history](https://github.com/docker-library/repo-info/commits/master/repos/joomla)) @@ -82,68 +102,102 @@ Joomla is a free and open-source content management system (CMS) for publishing # How to use this image ```console -$ docker run --name some-joomla --link some-mysql:mysql -d joomla +$ docker run --name some-joomla --network some-network -d joomla ``` -The following environment variables are also honored for configuring your Joomla instance: +The following environment variables are honored for configuring your Joomla instance: - `-e JOOMLA_DB_HOST=...` (defaults to the IP and port of the linked `mysql` container) - `-e JOOMLA_DB_USER=...` (defaults to "root") - `-e JOOMLA_DB_PASSWORD=...` (defaults to the value of the `MYSQL_ROOT_PASSWORD` environment variable from the linked `mysql` container) +- `-e JOOMLA_DB_PASSWORD_FILE=...` (path to a file containing the database password) - `-e JOOMLA_DB_NAME=...` (defaults to "joomla") +- `-e JOOMLA_DB_TYPE=...` (defaults to "mysqli" options: mysqli, pgsql) If the `JOOMLA_DB_NAME` specified does not already exist on the given MySQL server, it will be created automatically upon startup of the `joomla` container, provided that the `JOOMLA_DB_USER` specified has the necessary permissions to create it. +The following environment variables are also honored for configuring auto deployment (skip the browser setup) for your Joomla instance: + +- `-e JOOMLA_SITE_NAME=...` (name of the Joomla site) +- `-e JOOMLA_ADMIN_USER=...` (full name of the Joomla administrator) +- `-e JOOMLA_ADMIN_USERNAME=...` (username of the Joomla administrator) +- `-e JOOMLA_ADMIN_PASSWORD=...` (password of the Joomla administrator) +- `-e JOOMLA_ADMIN_EMAIL=...` (email address of the Joomla administrator) +- `-e JOOMLA_EXTENSIONS_URLS=...` (semicolon-separated list of URLs to install Joomla extensions from) +- `-e JOOMLA_EXTENSIONS_PATHS=...` (semicolon-separated list of file paths to install Joomla extensions from) +- `-e JOOMLA_SMTP_HOST=...` (SMTP host for outgoing email) +- `-e JOOMLA_SMTP_HOST_PORT=...` (SMTP port for outgoing email) + If you'd like to be able to access the instance from the host without the container's IP, standard port mappings can be used: ```console -$ docker run --name some-joomla --link some-mysql:mysql -p 8080:80 -d joomla +$ docker run --name some-joomla --network some-network -p 8080:80 -d joomla ``` Then, access it via `http://localhost:8080` or `http://host-ip:8080` in a browser. -If you'd like to use an external database instead of a linked `mysql` container, specify the hostname and port with `JOOMLA_DB_HOST` along with the password in `JOOMLA_DB_PASSWORD` and the username in `JOOMLA_DB_USER` (if it is something other than `root`): +If you'd like to use an external database instead of a MySQL container, specify the hostname and port with `JOOMLA_DB_HOST` along with the password in `JOOMLA_DB_PASSWORD` and the username in `JOOMLA_DB_USER` (if it is something other than `root`): ```console -$ docker run --name some-joomla -e JOOMLA_DB_HOST=10.1.2.3:3306 \ +$ docker run --name some-joomla --network some-network -e JOOMLA_DB_HOST=10.1.2.3:3306 \ -e JOOMLA_DB_USER=... -e JOOMLA_DB_PASSWORD=... -d joomla ``` -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `joomla`: +Example `compose.yaml` for `joomla`: ```yaml -version: '3.1' - services: + joomla: image: joomla restart: always - links: - - joomladb:mysql ports: - 8080:80 environment: - JOOMLA_DB_HOST: joomladb - JOOMLA_DB_PASSWORD: example - - joomladb: - image: mysql:5.6 + JOOMLA_DB_HOST: db + JOOMLA_DB_USER: joomla + JOOMLA_DB_PASSWORD: examplepass + JOOMLA_DB_NAME: joomla_db + JOOMLA_SITE_NAME: Joomla + JOOMLA_ADMIN_USER: Joomla Hero + JOOMLA_ADMIN_USERNAME: joomla + JOOMLA_ADMIN_PASSWORD: joomla@secured + JOOMLA_ADMIN_EMAIL: joomla@example.com + volumes: + - joomla_data:/var/www/html + networks: + - joomla_network + + db: + image: mysql:8.0 restart: always environment: - MYSQL_ROOT_PASSWORD: example + MYSQL_DATABASE: joomla_db + MYSQL_USER: joomla + MYSQL_PASSWORD: examplepass + MYSQL_RANDOM_ROOT_PASSWORD: '1' + volumes: + - db_data:/var/lib/mysql + networks: + - joomla_network + +volumes: + joomla_data: + db_data: + +networks: + joomla_network: ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/9efeec18b6b2ed232cf0fbd3914b6211e16e242c/joomla/stack.yml) - -Run `docker stack deploy -c stack.yml joomla` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Adding additional libraries / extensions This image does not provide any additional PHP extensions or other libraries, even if they are required by popular plugins. There are an infinite number of possible plugins, and they potentially require any extension PHP supports. Including every PHP extension that exists would dramatically increase the image size. -If you need additional PHP extensions, you'll need to create your own image `FROM` this one. The [documentation of the `php` image](https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions) explains how to compile additional extensions. Additionally, the [`joomla` Dockerfile](https://github.com/joomla/docker-joomla/blob/966275ada2148e343a68c8c03870f11cc7f5b89c/apache/Dockerfile#L7-L11) has an example of doing this. +If you need additional PHP extensions, you'll need to create your own image `FROM` this one. The [documentation of the `php` image](https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions) explains how to compile additional extensions. Additionally, the [`joomla` Dockerfile](https://github.com/joomla-docker/docker-joomla/blob/360f6bd96c80f72b020d2d9c8aae9daa6bca2887/5.1/php8.3/apache/Dockerfile#L51-L64) has an example of doing this. The following Docker Hub features can help with the task of keeping your dependent images up-to-date: diff --git a/joomla/compose.yaml b/joomla/compose.yaml new file mode 100644 index 000000000000..438e87771535 --- /dev/null +++ b/joomla/compose.yaml @@ -0,0 +1,41 @@ +services: + + joomla: + image: joomla + restart: always + ports: + - 8080:80 + environment: + JOOMLA_DB_HOST: db + JOOMLA_DB_USER: joomla + JOOMLA_DB_PASSWORD: examplepass + JOOMLA_DB_NAME: joomla_db + JOOMLA_SITE_NAME: Joomla + JOOMLA_ADMIN_USER: Joomla Hero + JOOMLA_ADMIN_USERNAME: joomla + JOOMLA_ADMIN_PASSWORD: joomla@secured + JOOMLA_ADMIN_EMAIL: joomla@example.com + volumes: + - joomla_data:/var/www/html + networks: + - joomla_network + + db: + image: mysql:8.0 + restart: always + environment: + MYSQL_DATABASE: joomla_db + MYSQL_USER: joomla + MYSQL_PASSWORD: examplepass + MYSQL_RANDOM_ROOT_PASSWORD: '1' + volumes: + - db_data:/var/lib/mysql + networks: + - joomla_network + +volumes: + joomla_data: + db_data: + +networks: + joomla_network: diff --git a/joomla/content.md b/joomla/content.md index 7ab6be806a4b..42e6dedd101d 100644 --- a/joomla/content.md +++ b/joomla/content.md @@ -9,42 +9,56 @@ Joomla is a free and open-source content management system (CMS) for publishing # How to use this image ```console -$ docker run --name some-%%REPO%% --link some-mysql:mysql -d %%IMAGE%% +$ docker run --name some-%%REPO%% --network some-network -d %%IMAGE%% ``` -The following environment variables are also honored for configuring your Joomla instance: +The following environment variables are honored for configuring your Joomla instance: - `-e JOOMLA_DB_HOST=...` (defaults to the IP and port of the linked `mysql` container) - `-e JOOMLA_DB_USER=...` (defaults to "root") - `-e JOOMLA_DB_PASSWORD=...` (defaults to the value of the `MYSQL_ROOT_PASSWORD` environment variable from the linked `mysql` container) +- `-e JOOMLA_DB_PASSWORD_FILE=...` (path to a file containing the database password) - `-e JOOMLA_DB_NAME=...` (defaults to "joomla") +- `-e JOOMLA_DB_TYPE=...` (defaults to "mysqli" options: mysqli, pgsql) If the `JOOMLA_DB_NAME` specified does not already exist on the given MySQL server, it will be created automatically upon startup of the `%%REPO%%` container, provided that the `JOOMLA_DB_USER` specified has the necessary permissions to create it. +The following environment variables are also honored for configuring auto deployment (skip the browser setup) for your Joomla instance: + +- `-e JOOMLA_SITE_NAME=...` (name of the Joomla site) +- `-e JOOMLA_ADMIN_USER=...` (full name of the Joomla administrator) +- `-e JOOMLA_ADMIN_USERNAME=...` (username of the Joomla administrator) +- `-e JOOMLA_ADMIN_PASSWORD=...` (password of the Joomla administrator) +- `-e JOOMLA_ADMIN_EMAIL=...` (email address of the Joomla administrator) +- `-e JOOMLA_EXTENSIONS_URLS=...` (semicolon-separated list of URLs to install Joomla extensions from) +- `-e JOOMLA_EXTENSIONS_PATHS=...` (semicolon-separated list of file paths to install Joomla extensions from) +- `-e JOOMLA_SMTP_HOST=...` (SMTP host for outgoing email) +- `-e JOOMLA_SMTP_HOST_PORT=...` (SMTP port for outgoing email) + If you'd like to be able to access the instance from the host without the container's IP, standard port mappings can be used: ```console -$ docker run --name some-%%REPO%% --link some-mysql:mysql -p 8080:80 -d %%IMAGE%% +$ docker run --name some-%%REPO%% --network some-network -p 8080:80 -d %%IMAGE%% ``` Then, access it via `http://localhost:8080` or `http://host-ip:8080` in a browser. -If you'd like to use an external database instead of a linked `mysql` container, specify the hostname and port with `JOOMLA_DB_HOST` along with the password in `JOOMLA_DB_PASSWORD` and the username in `JOOMLA_DB_USER` (if it is something other than `root`): +If you'd like to use an external database instead of a MySQL container, specify the hostname and port with `JOOMLA_DB_HOST` along with the password in `JOOMLA_DB_PASSWORD` and the username in `JOOMLA_DB_USER` (if it is something other than `root`): ```console -$ docker run --name some-%%REPO%% -e JOOMLA_DB_HOST=10.1.2.3:3306 \ - -e JOOMLA_DB_USER=... -e JOOMLA_DB_PASSWORD=... -d %%REPO%% +$ docker run --name some-%%REPO%% --network some-network -e JOOMLA_DB_HOST=10.1.2.3:3306 \ + -e JOOMLA_DB_USER=... -e JOOMLA_DB_PASSWORD=... -d %%IMAGE%% ``` -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Adding additional libraries / extensions This image does not provide any additional PHP extensions or other libraries, even if they are required by popular plugins. There are an infinite number of possible plugins, and they potentially require any extension PHP supports. Including every PHP extension that exists would dramatically increase the image size. -If you need additional PHP extensions, you'll need to create your own image `FROM` this one. The [documentation of the `php` image](https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions) explains how to compile additional extensions. Additionally, the [`%%REPO%%` Dockerfile](https://github.com/joomla/docker-joomla/blob/966275ada2148e343a68c8c03870f11cc7f5b89c/apache/Dockerfile#L7-L11) has an example of doing this. +If you need additional PHP extensions, you'll need to create your own image `FROM` this one. The [documentation of the `php` image](https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions) explains how to compile additional extensions. Additionally, the [`%%REPO%%` Dockerfile](https://github.com/joomla-docker/docker-joomla/blob/360f6bd96c80f72b020d2d9c8aae9daa6bca2887/5.1/php8.3/apache/Dockerfile#L51-L64) has an example of doing this. The following Docker Hub features can help with the task of keeping your dependent images up-to-date: diff --git a/joomla/github-repo b/joomla/github-repo index 6bb120cbf247..4abb699f820b 100644 --- a/joomla/github-repo +++ b/joomla/github-repo @@ -1 +1 @@ -https://github.com/joomla/docker-joomla +https://github.com/joomla-docker/docker-joomla diff --git a/joomla/metadata.json b/joomla/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/joomla/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/joomla/stack.yml b/joomla/stack.yml deleted file mode 100644 index f1ac990db505..000000000000 --- a/joomla/stack.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3.1' - -services: - joomla: - image: joomla - restart: always - links: - - joomladb:mysql - ports: - - 8080:80 - environment: - JOOMLA_DB_HOST: joomladb - JOOMLA_DB_PASSWORD: example - - joomladb: - image: mysql:5.6 - restart: always - environment: - MYSQL_ROOT_PASSWORD: example diff --git a/jruby/README.md b/jruby/README.md index 265f773ba9f2..8823918177c9 100644 --- a/jruby/README.md +++ b/jruby/README.md @@ -24,18 +24,69 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`latest`, `9`, `9.4`, `9.4.5`, `9.4-jre`, `9.4-jre8`, `9.4.5-jre`, `9.4.5-jre8`, `9.4.5.0`, `9.4.5.0-jre`, `9.4.5.0-jre8`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.4/jre8/Dockerfile) -- [`9-jdk`, `9-jdk8`, `9.4-jdk`, `9.4-jdk8`, `9.4.5-jdk`, `9.4.5-jdk8`, `9.4.5.0-jdk`, `9.4.5.0-jdk8`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.4/jdk8/Dockerfile) -- [`9.4-jre11`, `9.4.5-jre11`, `9.4.5.0-jre11`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.4/jre11/Dockerfile) -- [`9.4-jdk11`, `9.4.5-jdk11`, `9.4.5.0-jdk11`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.4/jdk11/Dockerfile) -- [`9.4-jdk17`, `9.4.5-jdk17`, `9.4.5.0-jdk17`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.4/jdk17/Dockerfile) -- [`9.4-jre17`, `9.4.5-jre17`, `9.4.5.0-jre17`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.4/jre17/Dockerfile) -- [`9.3`, `9.3.13`, `9.3-jre`, `9.3-jre8`, `9.3.13-jre`, `9.3.13-jre8`, `9.3.13.0`, `9.3.13.0-jre`, `9.3.13.0-jre8`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.3/jre8/Dockerfile) -- [`9.3-jdk`, `9.3-jdk8`, `9.3.13-jdk`, `9.3.13-jdk8`, `9.3.13.0-jdk`, `9.3.13.0-jdk8`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.3/jdk8/Dockerfile) -- [`9.3-jre11`, `9.3.13-jre11`, `9.3.13.0-jre11`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.3/jre11/Dockerfile) -- [`9.3-jdk11`, `9.3.13-jdk11`, `9.3.13.0-jdk11`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.3/jdk11/Dockerfile) -- [`9.3-jdk17`, `9.3.13-jdk17`, `9.3.13.0-jdk17`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.3/jdk17/Dockerfile) -- [`9.3-jre17`, `9.3.13-jre17`, `9.3.13.0-jre17`](https://github.com/jruby/docker-jruby/blob/7b97efdd88722c1e55b86f08a38aec4f6fb9fbe7/9.3/jre17/Dockerfile) +- [`latest`, `10`, `10.0`, `10.0.0`, `10.0-jre`, `10.0-jre21`, `10.0.0-jre`, `10.0.0-jre21`, `10.0.0.1`, `10.0.0.1-jre`, `10.0.0.1-jre21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/10.0/jre21/Dockerfile) + +- [`10-jdk`, `10-jdk21`, `10.0-jdk`, `10.0-jdk21`, `10.0.0-jdk`, `10.0.0-jdk21`, `10.0.0.1-jdk`, `10.0.0.1-jdk21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/10.0/jdk21/Dockerfile) + +- [`10.0-jre24`, `10.0.0-jre24`, `10.0.0.1-jre24`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/10.0/jre24/Dockerfile) + +- [`10.0-jdk24`, `10.0.0-jdk24`, `10.0.0.1-jdk24`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/10.0/jdk24/Dockerfile) + +- [`9`, `9.4`, `9.4.13`, `9.4-jre`, `9.4-jre8`, `9.4.13-jre`, `9.4.13-jre8`, `9.4.13.0`, `9.4.13.0-jre`, `9.4.13.0-jre8`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4/jre8/Dockerfile) + +- [`9-jdk`, `9-jdk8`, `9.4-jdk`, `9.4-jdk8`, `9.4.13-jdk`, `9.4.13-jdk8`, `9.4.13.0-jdk`, `9.4.13.0-jdk8`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4/jdk8/Dockerfile) + +- [`9.4-jre11`, `9.4.13-jre11`, `9.4.13.0-jre11`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4/jre11/Dockerfile) + +- [`9.4-jdk11`, `9.4.13-jdk11`, `9.4.13.0-jdk11`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4/jdk11/Dockerfile) + +- [`9.4-jdk17`, `9.4.13-jdk17`, `9.4.13.0-jdk17`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4/jdk17/Dockerfile) + +- [`9.4-jre17`, `9.4.13-jre17`, `9.4.13.0-jre17`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4/jre17/Dockerfile) + +- [`9.4-jdk21`, `9.4.13-jdk21`, `9.4.13.0-jdk21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4/jdk21/Dockerfile) + +- [`9.4-jre21`, `9.4.13-jre21`, `9.4.13.0-jre21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4/jre21/Dockerfile) + +- [`9.3`, `9.3.15`, `9.3-jre`, `9.3-jre8`, `9.3.15-jre`, `9.3.15-jre8`, `9.3.15.0`, `9.3.15.0-jre`, `9.3.15.0-jre8`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.3/jre8/Dockerfile) + +- [`9.3-jdk`, `9.3-jdk8`, `9.3.15-jdk`, `9.3.15-jdk8`, `9.3.15.0-jdk`, `9.3.15.0-jdk8`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.3/jdk8/Dockerfile) + +- [`9.3-jre11`, `9.3.15-jre11`, `9.3.15.0-jre11`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.3/jre11/Dockerfile) + +- [`9.3-jdk11`, `9.3.15-jdk11`, `9.3.15.0-jdk11`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.3/jdk11/Dockerfile) + +- [`9.3-jdk17`, `9.3.15-jdk17`, `9.3.15.0-jdk17`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.3/jdk17/Dockerfile) + +- [`9.3-jre17`, `9.3.15-jre17`, `9.3.15.0-jre17`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.3/jre17/Dockerfile) + +- [`9.3-jdk21`, `9.3.15-jdk21`, `9.3.15.0-jdk21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.3/jdk21/Dockerfile) + +- [`9.3-jre21`, `9.3.15-jre21`, `9.3.15.0-jre21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.3/jre21/Dockerfile) + +- [`10.0-dev-jre21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/10.0-dev/jre21/Dockerfile) + +- [`10.0-dev-jdk21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/10.0-dev/jdk21/Dockerfile) + +- [`10.0-dev-jre24`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/10.0-dev/jre24/Dockerfile) + +- [`10.0-dev-jdk24`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/10.0-dev/jdk24/Dockerfile) + +- [`9.4-dev-jre8`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4-dev/jre8/Dockerfile) + +- [`9.4-dev-jdk8`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4-dev/jdk8/Dockerfile) + +- [`9.4-dev-jre11`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4-dev/jre11/Dockerfile) + +- [`9.4-dev-jdk11`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4-dev/jdk11/Dockerfile) + +- [`9.4-dev-jdk17`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4-dev/jdk17/Dockerfile) + +- [`9.4-dev-jre17`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4-dev/jre17/Dockerfile) + +- [`9.4-dev-jdk21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4-dev/jdk21/Dockerfile) + +- [`9.4-dev-jre21`](https://github.com/jruby/docker-jruby/blob/bf38ddf9c19ebe9ad1c531e29f8b23e234b9fe3d/9.4-dev/jre21/Dockerfile) # Quick reference (cont.) diff --git a/jruby/metadata.json b/jruby/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/jruby/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/julia/README.md b/julia/README.md index a12b9ad2364d..2e74db5f6ac8 100644 --- a/julia/README.md +++ b/julia/README.md @@ -28,48 +28,76 @@ WARNING: ## Simple Tags -- [`1.10.0-rc1-bookworm`, `1.10-rc-bookworm`, `rc-bookworm`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.10-rc/bookworm/Dockerfile) -- [`1.10.0-rc1-bullseye`, `1.10-rc-bullseye`, `rc-bullseye`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.10-rc/bullseye/Dockerfile) -- [`1.10.0-rc1-alpine3.18`, `1.10-rc-alpine3.18`, `rc-alpine3.18`, `1.10.0-rc1-alpine`, `1.10-rc-alpine`, `rc-alpine`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.10-rc/alpine3.18/Dockerfile) -- [`1.10.0-rc1-alpine3.17`, `1.10-rc-alpine3.17`, `rc-alpine3.17`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.10-rc/alpine3.17/Dockerfile) -- [`1.10.0-rc1-windowsservercore-ltsc2022`, `1.10-rc-windowsservercore-ltsc2022`, `rc-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/9e6b1ddf368d41e5d8c4f146bd1f4580b771018a/1.10-rc/windows/windowsservercore-ltsc2022/Dockerfile) -- [`1.10.0-rc1-windowsservercore-1809`, `1.10-rc-windowsservercore-1809`, `rc-windowsservercore-1809`](https://github.com/docker-library/julia/blob/9e6b1ddf368d41e5d8c4f146bd1f4580b771018a/1.10-rc/windows/windowsservercore-1809/Dockerfile) -- [`1.9.4-bookworm`, `1.9-bookworm`, `1-bookworm`, `bookworm`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/bookworm/Dockerfile) -- [`1.9.4-bullseye`, `1.9-bullseye`, `1-bullseye`, `bullseye`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/bullseye/Dockerfile) -- [`1.9.4-alpine3.18`, `1.9-alpine3.18`, `1-alpine3.18`, `alpine3.18`, `1.9.4-alpine`, `1.9-alpine`, `1-alpine`, `alpine`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/alpine3.18/Dockerfile) -- [`1.9.4-alpine3.17`, `1.9-alpine3.17`, `1-alpine3.17`, `alpine3.17`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/alpine3.17/Dockerfile) -- [`1.9.4-windowsservercore-ltsc2022`, `1.9-windowsservercore-ltsc2022`, `1-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/windows/windowsservercore-ltsc2022/Dockerfile) -- [`1.9.4-windowsservercore-1809`, `1.9-windowsservercore-1809`, `1-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/windows/windowsservercore-1809/Dockerfile) -- [`1.6.7-bookworm`, `1.6-bookworm`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.6/bookworm/Dockerfile) -- [`1.6.7-bullseye`, `1.6-bullseye`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.6/bullseye/Dockerfile) -- [`1.6.7-alpine3.18`, `1.6-alpine3.18`, `1.6.7-alpine`, `1.6-alpine`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.6/alpine3.18/Dockerfile) -- [`1.6.7-alpine3.17`, `1.6-alpine3.17`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.6/alpine3.17/Dockerfile) -- [`1.6.7-windowsservercore-ltsc2022`, `1.6-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/e0d0364c90b544d2d6de097e324ff7cc538613e8/1.6/windows/windowsservercore-ltsc2022/Dockerfile) -- [`1.6.7-windowsservercore-1809`, `1.6-windowsservercore-1809`](https://github.com/docker-library/julia/blob/e0d0364c90b544d2d6de097e324ff7cc538613e8/1.6/windows/windowsservercore-1809/Dockerfile) +- [`1.12.0-beta4-bookworm`, `1.12-rc-bookworm`, `rc-bookworm`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/bookworm/Dockerfile) + +- [`1.12.0-beta4-bullseye`, `1.12-rc-bullseye`, `rc-bullseye`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/bullseye/Dockerfile) + +- [`1.12.0-beta4-alpine3.22`, `1.12-rc-alpine3.22`, `rc-alpine3.22`, `1.12.0-beta4-alpine`, `1.12-rc-alpine`, `rc-alpine`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/alpine3.22/Dockerfile) + +- [`1.12.0-beta4-alpine3.21`, `1.12-rc-alpine3.21`, `rc-alpine3.21`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/alpine3.21/Dockerfile) + +- [`1.12.0-beta4-windowsservercore-ltsc2025`, `1.12-rc-windowsservercore-ltsc2025`, `rc-windowsservercore-ltsc2025`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`1.12.0-beta4-windowsservercore-ltsc2022`, `1.12-rc-windowsservercore-ltsc2022`, `rc-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`1.11.5-bookworm`, `1.11-bookworm`, `1-bookworm`, `bookworm`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/bookworm/Dockerfile) + +- [`1.11.5-bullseye`, `1.11-bullseye`, `1-bullseye`, `bullseye`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/bullseye/Dockerfile) + +- [`1.11.5-alpine3.22`, `1.11-alpine3.22`, `1-alpine3.22`, `alpine3.22`, `1.11.5-alpine`, `1.11-alpine`, `1-alpine`, `alpine`](https://github.com/docker-library/julia/blob/7a8a43f0bd818b70b6856727c8ce87cd6f1ee26d/1.11/alpine3.22/Dockerfile) + +- [`1.11.5-alpine3.21`, `1.11-alpine3.21`, `1-alpine3.21`, `alpine3.21`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/alpine3.21/Dockerfile) + +- [`1.11.5-windowsservercore-ltsc2025`, `1.11-windowsservercore-ltsc2025`, `1-windowsservercore-ltsc2025`, `windowsservercore-ltsc2025`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`1.11.5-windowsservercore-ltsc2022`, `1.11-windowsservercore-ltsc2022`, `1-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`1.10.9-bookworm`, `1.10-bookworm`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/bookworm/Dockerfile) + +- [`1.10.9-bullseye`, `1.10-bullseye`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/bullseye/Dockerfile) + +- [`1.10.9-alpine3.22`, `1.10-alpine3.22`, `1.10.9-alpine`, `1.10-alpine`](https://github.com/docker-library/julia/blob/7a8a43f0bd818b70b6856727c8ce87cd6f1ee26d/1.10/alpine3.22/Dockerfile) + +- [`1.10.9-alpine3.21`, `1.10-alpine3.21`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/alpine3.21/Dockerfile) + +- [`1.10.9-windowsservercore-ltsc2025`, `1.10-windowsservercore-ltsc2025`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`1.10.9-windowsservercore-ltsc2022`, `1.10-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/windows/windowsservercore-ltsc2022/Dockerfile) ## Shared Tags -- `1.10.0-rc1`, `1.10-rc`, `rc`: - - [`1.10.0-rc1-bookworm`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.10-rc/bookworm/Dockerfile) - - [`1.10.0-rc1-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/9e6b1ddf368d41e5d8c4f146bd1f4580b771018a/1.10-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.10.0-rc1-windowsservercore-1809`](https://github.com/docker-library/julia/blob/9e6b1ddf368d41e5d8c4f146bd1f4580b771018a/1.10-rc/windows/windowsservercore-1809/Dockerfile) -- `1.10.0-rc1-windowsservercore`, `1.10-rc-windowsservercore`, `rc-windowsservercore`: - - [`1.10.0-rc1-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/9e6b1ddf368d41e5d8c4f146bd1f4580b771018a/1.10-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.10.0-rc1-windowsservercore-1809`](https://github.com/docker-library/julia/blob/9e6b1ddf368d41e5d8c4f146bd1f4580b771018a/1.10-rc/windows/windowsservercore-1809/Dockerfile) -- `1.9.4`, `1.9`, `1`, `latest`: - - [`1.9.4-bookworm`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/bookworm/Dockerfile) - - [`1.9.4-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.9.4-windowsservercore-1809`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/windows/windowsservercore-1809/Dockerfile) -- `1.9.4-windowsservercore`, `1.9-windowsservercore`, `1-windowsservercore`, `windowsservercore`: - - [`1.9.4-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.9.4-windowsservercore-1809`](https://github.com/docker-library/julia/blob/154363df0b038fb8a5e74bb97bbed3fb8faea7ca/1.9/windows/windowsservercore-1809/Dockerfile) -- `1.6.7`, `1.6`: - - [`1.6.7-bookworm`](https://github.com/docker-library/julia/blob/ff6d8f64752b64aff292e12162340e3707487f17/1.6/bookworm/Dockerfile) - - [`1.6.7-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/e0d0364c90b544d2d6de097e324ff7cc538613e8/1.6/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.6.7-windowsservercore-1809`](https://github.com/docker-library/julia/blob/e0d0364c90b544d2d6de097e324ff7cc538613e8/1.6/windows/windowsservercore-1809/Dockerfile) -- `1.6.7-windowsservercore`, `1.6-windowsservercore`: - - [`1.6.7-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/e0d0364c90b544d2d6de097e324ff7cc538613e8/1.6/windows/windowsservercore-ltsc2022/Dockerfile) - - [`1.6.7-windowsservercore-1809`](https://github.com/docker-library/julia/blob/e0d0364c90b544d2d6de097e324ff7cc538613e8/1.6/windows/windowsservercore-1809/Dockerfile) +- `1.12.0-beta4`, `1.12-rc`, `rc`: + + - [`1.12.0-beta4-bookworm`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/bookworm/Dockerfile) + - [`1.12.0-beta4-windowsservercore-ltsc2025`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.12.0-beta4-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.12.0-beta4-windowsservercore`, `1.12-rc-windowsservercore`, `rc-windowsservercore`: + + - [`1.12.0-beta4-windowsservercore-ltsc2025`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.12.0-beta4-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/51f7c3f9b1d6c71ac564d1518844144500371e9c/1.12-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.11.5`, `1.11`, `1`, `latest`: + + - [`1.11.5-bookworm`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/bookworm/Dockerfile) + - [`1.11.5-windowsservercore-ltsc2025`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.11.5-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.11.5-windowsservercore`, `1.11-windowsservercore`, `1-windowsservercore`, `windowsservercore`: + + - [`1.11.5-windowsservercore-ltsc2025`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.11.5-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/bd1d1d4ea366ccbfd675e942aed13022abd76eb6/1.11/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.10.9`, `1.10`: + + - [`1.10.9-bookworm`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/bookworm/Dockerfile) + - [`1.10.9-windowsservercore-ltsc2025`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.10.9-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/windows/windowsservercore-ltsc2022/Dockerfile) + +- `1.10.9-windowsservercore`, `1.10-windowsservercore`: + + - [`1.10.9-windowsservercore-ltsc2025`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/windows/windowsservercore-ltsc2025/Dockerfile) + - [`1.10.9-windowsservercore-ltsc2022`](https://github.com/docker-library/julia/blob/6f34d11736ca81e111e3ce285d6d7e08a4742300/1.10/windows/windowsservercore-ltsc2022/Dockerfile) # Quick reference (cont.) @@ -77,7 +105,7 @@ WARNING: [https://github.com/docker-library/julia/issues](https://github.com/docker-library/julia/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/julia/), [`arm32v7`](https://hub.docker.com/r/arm32v7/julia/), [`arm64v8`](https://hub.docker.com/r/arm64v8/julia/), [`i386`](https://hub.docker.com/r/i386/julia/), [`ppc64le`](https://hub.docker.com/r/ppc64le/julia/), [`windows-amd64`](https://hub.docker.com/r/winamd64/julia/) + [`amd64`](https://hub.docker.com/r/amd64/julia/), [`arm64v8`](https://hub.docker.com/r/arm64v8/julia/), [`i386`](https://hub.docker.com/r/i386/julia/), [`ppc64le`](https://hub.docker.com/r/ppc64le/julia/), [`windows-amd64`](https://hub.docker.com/r/winamd64/julia/) - **Published image artifact details**: [repo-info repo's `repos/julia/` directory](https://github.com/docker-library/repo-info/blob/master/repos/julia) ([history](https://github.com/docker-library/repo-info/commits/master/repos/julia)) diff --git a/julia/metadata.json b/julia/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/julia/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/kapacitor/README.md b/kapacitor/README.md index 0225c199d302..f83a7256e1f1 100644 --- a/kapacitor/README.md +++ b/kapacitor/README.md @@ -24,10 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.6`, `1.6.6`](https://github.com/influxdata/influxdata-docker/blob/088d4b13d2d0e4ab522d6f21021d54302ed86aa1/kapacitor/1.6/Dockerfile) -- [`1.6-alpine`, `1.6.6-alpine`](https://github.com/influxdata/influxdata-docker/blob/088d4b13d2d0e4ab522d6f21021d54302ed86aa1/kapacitor/1.6/alpine/Dockerfile) -- [`1.7`, `1.7.1`, `latest`](https://github.com/influxdata/influxdata-docker/blob/088d4b13d2d0e4ab522d6f21021d54302ed86aa1/kapacitor/1.7/Dockerfile) -- [`1.7-alpine`, `1.7.1-alpine`, `alpine`](https://github.com/influxdata/influxdata-docker/blob/088d4b13d2d0e4ab522d6f21021d54302ed86aa1/kapacitor/1.7/alpine/Dockerfile) +- [`1.6`, `1.6.6`](https://github.com/influxdata/influxdata-docker/blob/8b23d6db77384c3fbecc52e880b83c4600fdffc8/kapacitor/1.6/Dockerfile) + +- [`1.6-alpine`, `1.6.6-alpine`](https://github.com/influxdata/influxdata-docker/blob/8b23d6db77384c3fbecc52e880b83c4600fdffc8/kapacitor/1.6/alpine/Dockerfile) + +- [`1.7`, `1.7.7`, `latest`](https://github.com/influxdata/influxdata-docker/blob/8b23d6db77384c3fbecc52e880b83c4600fdffc8/kapacitor/1.7/Dockerfile) + +- [`1.7-alpine`, `1.7.7-alpine`, `alpine`](https://github.com/influxdata/influxdata-docker/blob/8b23d6db77384c3fbecc52e880b83c4600fdffc8/kapacitor/1.7/alpine/Dockerfile) # Quick reference (cont.) @@ -117,6 +120,10 @@ KAPACITOR_INFLUXDB_0_URLS_0=http://influxdb:8086 Find more about configuring Kapacitor [here](https://docs.influxdata.com/kapacitor/latest/introduction/installation/) +#### Running as root + +Starting in v1.7.4, Kapacitor no longer run as the root user by default. If a user wants to revert this change they can set `KAPACITOR_AS_ROOT=true` as an environment variable. + ### Exposed Ports - 9092 TCP -- HTTP API endpoint diff --git a/kapacitor/content.md b/kapacitor/content.md index 9d0f75429a81..5975e3fc58ab 100644 --- a/kapacitor/content.md +++ b/kapacitor/content.md @@ -67,6 +67,10 @@ KAPACITOR_INFLUXDB_0_URLS_0=http://influxdb:8086 Find more about configuring Kapacitor [here](https://docs.influxdata.com/kapacitor/latest/introduction/installation/) +#### Running as root + +Starting in v1.7.4, Kapacitor no longer run as the root user by default. If a user wants to revert this change they can set `KAPACITOR_AS_ROOT=true` as an environment variable. + ### Exposed Ports - 9092 TCP -- HTTP API endpoint diff --git a/kapacitor/metadata.json b/kapacitor/metadata.json new file mode 100644 index 000000000000..5f9ae9afb8e1 --- /dev/null +++ b/kapacitor/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "monitoring-and-observability" + ] + } +} diff --git a/kibana/README.md b/kibana/README.md index ff3074828566..bccef28d544b 100644 --- a/kibana/README.md +++ b/kibana/README.md @@ -24,8 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.11.1`](https://github.com/docker-library/kibana/blob/d86e69a854eb6bb1c4b4b33d629b784eb6ca539d/8/Dockerfile) -- [`7.17.15`](https://github.com/docker-library/kibana/blob/9c6a9d1c949c08a7254e2ff66594e25c4be54da7/7/Dockerfile) +- [`7.17.28`](https://github.com/elastic/dockerfiles/blob/2ef7e0a0be5abd21cb38a39c3cce65d5278ebfee/kibana/Dockerfile) + +- [`8.17.6`](https://github.com/elastic/dockerfiles/blob/d7216d19313f88d63f43b52df31da2b4ae6ace3c/kibana/Dockerfile) + +- [`8.18.2`](https://github.com/elastic/dockerfiles/blob/1224fffeb3ad5be8a373d52d0906a6c70146b27b/kibana/Dockerfile) + +- [`9.0.2`](https://github.com/elastic/dockerfiles/blob/6e12e2f27f2ef93e0e22aa6b8775b77d19fe4271/kibana/Dockerfile) # Quick reference (cont.) diff --git a/kibana/stack.yml b/kibana/compose.yaml similarity index 86% rename from kibana/stack.yml rename to kibana/compose.yaml index a1139cb266e9..6adbea8faf12 100644 --- a/kibana/stack.yml +++ b/kibana/compose.yaml @@ -1,5 +1,3 @@ -version: '3.1' - services: kibana: @@ -9,4 +7,3 @@ services: elasticsearch: image: elasticsearch - diff --git a/kibana/metadata.json b/kibana/metadata.json new file mode 100644 index 000000000000..5f9ae9afb8e1 --- /dev/null +++ b/kibana/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "monitoring-and-observability" + ] + } +} diff --git a/kong/README.md b/kong/README.md index 49b544511326..a393ec648714 100644 --- a/kong/README.md +++ b/kong/README.md @@ -24,18 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.5.0-ubuntu`, `3.5-ubuntu`, `3.5.0`, `3.5`, `3`, `latest`, `ubuntu`](https://github.com/Kong/docker-kong/blob/e4ba2e351f3da34727fd016409a2669004b3fce0/ubuntu/Dockerfile) -- [`3.4.2-ubuntu`, `3.4-ubuntu`, `3.4.2`, `3.4`](https://github.com/Kong/docker-kong/blob/2ccc1a4cc237f2cbe85e9226c8d0fa1e70f1d612/ubuntu/Dockerfile) -- [`3.3.1-alpine`, `alpine`](https://github.com/Kong/docker-kong/blob/2207aa20530f8a04290c82c9c2258717f7795080/Dockerfile.apk) -- [`3.3.1-ubuntu`, `3.3-ubuntu`, `3.3.1`, `3.3`](https://github.com/Kong/docker-kong/blob/2207aa20530f8a04290c82c9c2258717f7795080/ubuntu/Dockerfile) -- [`3.2.2-alpine`](https://github.com/Kong/docker-kong/blob/5641f8836920650fc66c6d36408daf794d730b96/Dockerfile.apk) -- [`3.2.2-ubuntu`, `3.2-ubuntu`, `3.2.2`, `3.2`](https://github.com/Kong/docker-kong/blob/5641f8836920650fc66c6d36408daf794d730b96/ubuntu/Dockerfile) -- [`3.1.1-alpine`, `3.1.1`, `3.1`](https://github.com/Kong/docker-kong/blob/5f914be945ec1732837cc4f6463219bed566c7ef/Dockerfile.apk) -- [`3.1.1-ubuntu`, `3.1-ubuntu`](https://github.com/Kong/docker-kong/blob/5f914be945ec1732837cc4f6463219bed566c7ef/ubuntu/Dockerfile) -- [`3.0.2-alpine`, `3.0-alpine`, `3.0.2`, `3.0`](https://github.com/Kong/docker-kong/blob/5a3ee8daf50371db2e3a788abe8f306255eead22/Dockerfile.apk) -- [`3.0.2-ubuntu`, `3.0-ubuntu`](https://github.com/Kong/docker-kong/blob/5a3ee8daf50371db2e3a788abe8f306255eead22/ubuntu/Dockerfile) -- [`2.8.4-alpine`, `2.8.4`, `2.8`](https://github.com/Kong/docker-kong/blob/1c31704cdc9bbd2c0a20e5479eb307140339582b/alpine/Dockerfile) -- [`2.8.4-ubuntu`, `2.8-ubuntu`](https://github.com/Kong/docker-kong/blob/1c31704cdc9bbd2c0a20e5479eb307140339582b/ubuntu/Dockerfile) +- [`3.9.1-ubuntu`, `3.9-ubuntu`, `3.9.1`, `3.9`, `3`, `latest`, `ubuntu`](https://github.com/Kong/docker-kong/blob/af96ffd89b75f2e7a68cb90d0a3c4b4cd30d53fc/ubuntu/Dockerfile) + +- [`3.8.0-ubuntu`, `3.8-ubuntu`, `3.8.0`, `3.8`](https://github.com/Kong/docker-kong/blob/1f5199f7da45c17f4344b811397e89899a160040/ubuntu/Dockerfile) + +- [`3.4.2-ubuntu`, `3.4-ubuntu`, `3.4.2`, `3.4`](https://github.com/Kong/docker-kong/blob/e07de903edf213445a0540172d51529ac344b448/ubuntu/Dockerfile) + +- [`2.8.5-ubuntu`, `2.8-ubuntu`](https://github.com/Kong/docker-kong/blob/cdf93ae2106f998a2245a3eee6814b1ae68781af/ubuntu/Dockerfile) # Quick reference (cont.) @@ -68,25 +63,9 @@ Kong's official documentation can be found at [docs.konghq.com](https://docs.kon Please refer to the [installation section](https://docs.konghq.com/gateway/latest/install/docker/#main) on our documentation website to learn how to use this image. -# Image Variants - -The `kong` images come in many flavors, each designed for a specific use case. - -## `kong:` - -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. - -## `kong:-alpine` - -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. - -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. - -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). - # License -View [license information](https://konghq.com/kong/license/) for the software contained in this image. +View [license information](https://github.com/Kong/kong/blob/master/LICENSE) for the software contained in this image. 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). diff --git a/kong/license.md b/kong/license.md index aa0f77f2e58d..510f4360ef21 100644 --- a/kong/license.md +++ b/kong/license.md @@ -1 +1 @@ -View [license information](https://konghq.com/kong/license/) for the software contained in this image. +View [license information](https://github.com/Kong/kong/blob/master/LICENSE) for the software contained in this image. diff --git a/kong/metadata.json b/kong/metadata.json new file mode 100644 index 000000000000..538442b9d959 --- /dev/null +++ b/kong/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "api-management" + ] + } +} diff --git a/krakend/README-short.txt b/krakend/README-short.txt new file mode 100644 index 000000000000..f0d3871d3d32 --- /dev/null +++ b/krakend/README-short.txt @@ -0,0 +1 @@ +KrakenD is a stateless, high-performance, enterprise-ready, open source API gateway written in Go. \ No newline at end of file diff --git a/krakend/README.md b/krakend/README.md new file mode 100644 index 000000000000..e12a649943c2 --- /dev/null +++ b/krakend/README.md @@ -0,0 +1,209 @@ + + +# Quick reference + +- **Maintained by**: + [the KrakenD Maintainers](https://github.com/krakend/krakend-ce) + +- **Where to get help**: + [documentation](https://www.krakend.io/docs/overview/introduction/), [community support](https://groups.google.com/a/krakend.io/g/community), [open an issue](https://github.com/krakend/krakend-ce/issues), [other support channels](https://www.krakend.io/support/) + +# Supported tags and respective `Dockerfile` links + +- [`2.10.0`, `2.10`, `2`, `latest`](https://github.com/krakendio/docker-library/blob/e251c6c6db51dcd34e11cc507830cfc200d652c1/2.10.0/Dockerfile) + +# Quick reference (cont.) + +- **Where to file issues**: + [https://github.com/krakend/krakend-ce/issues](https://github.com/krakend/krakend-ce/issues?q=) + +- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) + [`amd64`](https://hub.docker.com/r/amd64/krakend/), [`arm64v8`](https://hub.docker.com/r/arm64v8/krakend/) + +- **Published image artifact details**: + [repo-info repo's `repos/krakend/` directory](https://github.com/docker-library/repo-info/blob/master/repos/krakend) ([history](https://github.com/docker-library/repo-info/commits/master/repos/krakend)) + (image metadata, transfer size, etc) + +- **Image updates**: + [official-images repo's `library/krakend` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fkrakend) + [official-images repo's `library/krakend` file](https://github.com/docker-library/official-images/blob/master/library/krakend) ([history](https://github.com/docker-library/official-images/commits/master/library/krakend)) + +- **Source of this description**: + [docs repo's `krakend/` directory](https://github.com/docker-library/docs/tree/master/krakend) ([history](https://github.com/docker-library/docs/commits/master/krakend)) + +![logo](https://raw.githubusercontent.com/docker-library/docs/af2c9a19a5f032bfeea653ae85d841e26e5bc61c/krakend/logo.png) + +# What is KrakenD? + +[KrakenD](https://www.krakend.io/) is a stateless, high-performance, enterprise-ready, open-source API gateway written in Go. Its engine (formerly known as *KrakenD Framework*) is now a **Linux Foundation Project** codenamed [Lura Project](https://luraproject.org/). Lura is the only enterprise-grade API Gateway hosted in a neutral, open forum. + +KrakenD is lightweight and straightforward, as it only requires writing the configuration file. No Go knowledge is required. It offers connectivity to internal and external services, data transformation and filtering, and aggregation of multiple data sources (APIs, gRPC, queues and pub/sub, lambda, etc.) simultaneously or in cascade. It protects access to your API, throughputs its usage, and integrates with many third-parties. + +All features are designed to offer extraordinary performance and infinite scalability. + +## How to use this image + +KrakenD only needs a single configuration file to create an API Gateway, although you can have a complex setup reflecting your organization structure. The configuration file(s) can live anywhere in the container, but the default location (the workdir) is `/etc/krakend`. + +To use the image, `COPY` your `krakend.json` file inside the container or mount it using a volume. The configuration is checked only once during the startup and never used again. Don't have a config file yet? Generate it with the [KrakenD Designer UI](https://designer.krakend.io). + +⚠️ **NOTICE**: KrakenD does not use live reload when your configuration changes. Restart the container. + +### Quick start + +You can start an empty gateway with a health check with the following commands: + +```bash +docker run -d -p 8080:8080 -v "$PWD:/etc/krakend/" krakend + +curl http://localhost:8080/__health +{"agents":{},"now":"2024-05-23 14:35:55.552591448 +0000 UTC m=+26.856583003","status":"ok"} +``` + +### More Examples + +The following are several examples of running KrakenD. By default, the command `run` is executed, but you can pass other commands and flags at the end of the run command. + +The configuration files are taken from the current directory (`$PWD`). Therefore, all examples expect to find at least the file `krakend.json`. + +#### Run with the debug enabled (flag `-d`): + +This flag is **SAFE to use in production**. It's meant to enable KrakenD as a fake backend itself by enabling a [`/__debug` endpoint](https://www.krakend.io/docs/endpoints/debug-endpoint/) + +```bash +docker run -p 8080:8080 -v "${PWD}:/etc/krakend/" krakend run -d -c /etc/krakend/krakend.json +``` + +#### Checking the syntax of your configuration file + +See the [check command](https://www.krakend.io/docs/commands/check/) + +```bash +docker run -it -v $PWD:/etc/krakend/ krakend check --config krakend.json +``` + +#### Show the help: + +```bash +docker run --rm -it krakend help +``` + +### Building your custom KrakenD image + +Most production deployments will not want to rely on mounting a volume for the container but to use their image based on `krakend`: + +Your `Dockerfile` could look like this: + +```Dockerfile +FROM krakend: +# NOTE: Avoid using :latest image on production. Stick to a major version instead. + +COPY krakend.json ./ + +# Check and test that the file is valid +RUN krakend check -t --lint-no-network -c krakend.json +``` + +If you want to manage your KrakenD configuration using multiple files and folders, reusing templates, and distributing the configuration amongst your teams, you can use the [flexible configuration (FC)](https://www.krakend.io/docs/configuration/flexible-config/). The following `Dockerfile` combines FC, the `krakend check` command, and a 2-step build. + +```Dockerfile +FROM krakend: as builder + +COPY krakend.tmpl . +COPY config . + +# Save temporary output file to /tmp to avoid permission errors +RUN FC_ENABLE=1 \ + FC_OUT=/tmp/krakend.json \ + FC_PARTIALS="/etc/krakend/partials" \ + FC_SETTINGS="/etc/krakend/settings" \ + FC_TEMPLATES="/etc/krakend/templates" \ + krakend check -d -t -c krakend.tmpl + +# Copy the output file only and discard any other files +FROM krakend: +COPY --from=builder /tmp/krakend.json . +``` + +Then build with `docker build -t my_krakend .` + +The configuration above assumes you have a folder structure like the following: + + . + ├── config + │ ├── partials + │ ├── settings + │ │ └── env.json + │ └── templates + │ └── some.tmpl + ├── Dockerfile + └── krakend.tmpl + +### Docker Compose example + +Finally, a simple `docker compose` file to start KrakenD with your API would be: + +```yaml +services: + krakend: + image: krakend: + ports: + - "8080:8080" + volumes: + - ./:/etc/krakend +``` + +And another one that uses the flexible configuration and a custom template filename (`my_krakend.tmpl`) on each start: + +```yaml +services: + krakend: + image: krakend: + ports: + - "8080:8080" + volumes: + - ./:/etc/krakend + environment: + - FC_ENABLE=1 + - FC_OUT=/tmp/krakend.json + - FC_PARTIALS="/etc/krakend/config/partials" + - FC_SETTINGS="/etc/krakend/config/settings/prod" + - FC_TEMPLATES="/etc/krakend/config/templates" + command: + command: ["krakend", "run", "-c", "krakend.tmpl", "-d"] +``` + +### Container permissions and commands + +All `krakend` commands are executed as `krakend` user (uid=1000), and the rest of the commands (e.g., `sh`) are executed as root. + +You can directly use sub-commands of `krakend` like `run`, `help`, `version`, `check`, `check-plugin`, or `test-plugin` as the entrypoint will add the `krakend` command automatically. For example, the following lines are equivalent: + +```bash +docker run --rm -it krakend help +docker run --rm -it krakend krakend help +``` + +# License + +View [license information](https://github.com/krakend/krakend-ce/blob/master/LICENSE) for the software contained in this image. + +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). + +Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `krakend/` directory](https://github.com/docker-library/repo-info/tree/master/repos/krakend). + +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. diff --git a/krakend/content.md b/krakend/content.md new file mode 100644 index 000000000000..37ac86b64299 --- /dev/null +++ b/krakend/content.md @@ -0,0 +1,152 @@ +%%LOGO%% + +# What is KrakenD? + +[KrakenD](https://www.krakend.io/) is a stateless, high-performance, enterprise-ready, open-source API gateway written in Go. Its engine (formerly known as *KrakenD Framework*) is now a **Linux Foundation Project** codenamed [Lura Project](https://luraproject.org/). Lura is the only enterprise-grade API Gateway hosted in a neutral, open forum. + +KrakenD is lightweight and straightforward, as it only requires writing the configuration file. No Go knowledge is required. It offers connectivity to internal and external services, data transformation and filtering, and aggregation of multiple data sources (APIs, gRPC, queues and pub/sub, lambda, etc.) simultaneously or in cascade. It protects access to your API, throughputs its usage, and integrates with many third-parties. + +All features are designed to offer extraordinary performance and infinite scalability. + +## How to use this image + +KrakenD only needs a single configuration file to create an API Gateway, although you can have a complex setup reflecting your organization structure. The configuration file(s) can live anywhere in the container, but the default location (the workdir) is `/etc/krakend`. + +To use the image, `COPY` your `krakend.json` file inside the container or mount it using a volume. The configuration is checked only once during the startup and never used again. Don't have a config file yet? Generate it with the [KrakenD Designer UI](https://designer.krakend.io). + +⚠️ **NOTICE**: KrakenD does not use live reload when your configuration changes. Restart the container. + +### Quick start + +You can start an empty gateway with a health check with the following commands: + +```bash +docker run -d -p 8080:8080 -v "$PWD:/etc/krakend/" %%IMAGE%% + +curl http://localhost:8080/__health +{"agents":{},"now":"2024-05-23 14:35:55.552591448 +0000 UTC m=+26.856583003","status":"ok"} +``` + +### More Examples + +The following are several examples of running KrakenD. By default, the command `run` is executed, but you can pass other commands and flags at the end of the run command. + +The configuration files are taken from the current directory (`$PWD`). Therefore, all examples expect to find at least the file `krakend.json`. + +#### Run with the debug enabled (flag `-d`): + +This flag is **SAFE to use in production**. It's meant to enable KrakenD as a fake backend itself by enabling a [`/__debug` endpoint](https://www.krakend.io/docs/endpoints/debug-endpoint/) + +```bash +docker run -p 8080:8080 -v "${PWD}:/etc/krakend/" %%IMAGE%% run -d -c /etc/krakend/krakend.json +``` + +#### Checking the syntax of your configuration file + +See the [check command](https://www.krakend.io/docs/commands/check/) + +```bash +docker run -it -v $PWD:/etc/krakend/ %%IMAGE%% check --config krakend.json +``` + +#### Show the help: + +```bash +docker run --rm -it %%IMAGE%% help +``` + +### Building your custom KrakenD image + +Most production deployments will not want to rely on mounting a volume for the container but to use their image based on `%%IMAGE%%`: + +Your `Dockerfile` could look like this: + +```Dockerfile +FROM %%IMAGE%%: +# NOTE: Avoid using :latest image on production. Stick to a major version instead. + +COPY krakend.json ./ + +# Check and test that the file is valid +RUN krakend check -t --lint-no-network -c krakend.json +``` + +If you want to manage your KrakenD configuration using multiple files and folders, reusing templates, and distributing the configuration amongst your teams, you can use the [flexible configuration (FC)](https://www.krakend.io/docs/configuration/flexible-config/). The following `Dockerfile` combines FC, the `krakend check` command, and a 2-step build. + +```Dockerfile +FROM %%IMAGE%%: as builder + +COPY krakend.tmpl . +COPY config . + +# Save temporary output file to /tmp to avoid permission errors +RUN FC_ENABLE=1 \ + FC_OUT=/tmp/krakend.json \ + FC_PARTIALS="/etc/krakend/partials" \ + FC_SETTINGS="/etc/krakend/settings" \ + FC_TEMPLATES="/etc/krakend/templates" \ + krakend check -d -t -c krakend.tmpl + +# Copy the output file only and discard any other files +FROM %%IMAGE%%: +COPY --from=builder /tmp/krakend.json . +``` + +Then build with `docker build -t my_krakend .` + +The configuration above assumes you have a folder structure like the following: + + . + ├── config + │ ├── partials + │ ├── settings + │ │ └── env.json + │ └── templates + │ └── some.tmpl + ├── Dockerfile + └── krakend.tmpl + +### Docker Compose example + +Finally, a simple `docker compose` file to start KrakenD with your API would be: + +```yaml +services: + krakend: + image: %%IMAGE%%: + ports: + - "8080:8080" + volumes: + - ./:/etc/krakend +``` + +And another one that uses the flexible configuration and a custom template filename (`my_krakend.tmpl`) on each start: + +```yaml +services: + krakend: + image: %%IMAGE%%: + ports: + - "8080:8080" + volumes: + - ./:/etc/krakend + environment: + - FC_ENABLE=1 + - FC_OUT=/tmp/krakend.json + - FC_PARTIALS="/etc/krakend/config/partials" + - FC_SETTINGS="/etc/krakend/config/settings/prod" + - FC_TEMPLATES="/etc/krakend/config/templates" + command: + command: ["krakend", "run", "-c", "krakend.tmpl", "-d"] +``` + +### Container permissions and commands + +All `krakend` commands are executed as `krakend` user (uid=1000), and the rest of the commands (e.g., `sh`) are executed as root. + +You can directly use sub-commands of `krakend` like `run`, `help`, `version`, `check`, `check-plugin`, or `test-plugin` as the entrypoint will add the `krakend` command automatically. For example, the following lines are equivalent: + +```bash +docker run --rm -it %%IMAGE%% help +docker run --rm -it %%IMAGE%% krakend help +``` diff --git a/krakend/get-help.md b/krakend/get-help.md new file mode 100644 index 000000000000..56c5731ed60e --- /dev/null +++ b/krakend/get-help.md @@ -0,0 +1 @@ +[documentation](https://www.krakend.io/docs/overview/introduction/), [community support](https://groups.google.com/a/krakend.io/g/community), [open an issue](https://github.com/krakend/krakend-ce/issues), [other support channels](https://www.krakend.io/support/) diff --git a/krakend/github-repo b/krakend/github-repo new file mode 100644 index 000000000000..e48225a5287f --- /dev/null +++ b/krakend/github-repo @@ -0,0 +1 @@ +https://github.com/krakend/krakend-ce diff --git a/krakend/license.md b/krakend/license.md new file mode 100644 index 000000000000..62249b167719 --- /dev/null +++ b/krakend/license.md @@ -0,0 +1 @@ +View [license information](https://github.com/krakend/krakend-ce/blob/master/LICENSE) for the software contained in this image. diff --git a/krakend/logo-120.png b/krakend/logo-120.png new file mode 100644 index 000000000000..1f19d4ffede0 Binary files /dev/null and b/krakend/logo-120.png differ diff --git a/krakend/logo.png b/krakend/logo.png new file mode 100644 index 000000000000..7a4be7f5ce1b Binary files /dev/null and b/krakend/logo.png differ diff --git a/krakend/maintainer.md b/krakend/maintainer.md new file mode 100644 index 000000000000..2fcab789f470 --- /dev/null +++ b/krakend/maintainer.md @@ -0,0 +1 @@ +[the KrakenD Maintainers](%%GITHUB-REPO%%) diff --git a/krakend/metadata.json b/krakend/metadata.json new file mode 100644 index 000000000000..538442b9d959 --- /dev/null +++ b/krakend/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "api-management" + ] + } +} diff --git a/lightstreamer/README.md b/lightstreamer/README.md index fbd8d3001fb6..230d401442fa 100644 --- a/lightstreamer/README.md +++ b/lightstreamer/README.md @@ -24,20 +24,35 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`6.0.3`, `6.0`](https://github.com/Lightstreamer/Docker/blob/84e3f6588620183b48b7eb62a18070b793eff019/6.0/Dockerfile) -- [`6.1.0`, `6.1`, `6`](https://github.com/Lightstreamer/Docker/blob/84e3f6588620183b48b7eb62a18070b793eff019/6.1/Dockerfile) -- [`7.0.3-jdk8-temurin`, `7.0-jdk8-temurin`, `7.0.3-jdk8`, `7.0-jdk8`](https://github.com/Lightstreamer/Docker/blob/84e3f6588620183b48b7eb62a18070b793eff019/7.0/jdk8/Dockerfile) -- [`7.0.3-jdk11-temurin`, `7.0-jdk11-temurin`, `7.0.3-jdk11`, `7.0-jdk11`, `7.0.3`, `7.0`](https://github.com/Lightstreamer/Docker/blob/84e3f6588620183b48b7eb62a18070b793eff019/7.0/jdk11/Dockerfile) -- [`7.1.3-jdk8-temurin`, `7.1-jdk8-temurin`, `7.1.3-jdk8`, `7.1-jdk8`](https://github.com/Lightstreamer/Docker/blob/84e3f6588620183b48b7eb62a18070b793eff019/7.1/jdk8/Dockerfile) -- [`7.1.3-jdk11-temurin`, `7.1-jdk11-temurin`, `7.1.3-jdk11`, `7.1-jdk11`, `7.1.3`, `7.1`](https://github.com/Lightstreamer/Docker/blob/84e3f6588620183b48b7eb62a18070b793eff019/7.1/jdk11/Dockerfile) -- [`7.2.2-jdk8-temurin`, `7.2-jdk8-temurin`, `7.2.2-jdk8`, `7.2-jdk8`](https://github.com/Lightstreamer/Docker/blob/84e3f6588620183b48b7eb62a18070b793eff019/7.2/jdk8/Dockerfile) -- [`7.2.2-jdk11-temurin`, `7.2-jdk11-temurin`, `7.2.2-jdk11`, `7.2-jdk11`, `7.2.2`, `7.2`](https://github.com/Lightstreamer/Docker/blob/84e3f6588620183b48b7eb62a18070b793eff019/7.2/jdk11/Dockerfile) -- [`7.3.3-jdk8-temurin`, `7.3-jdk8-temurin`, `7.3.3-jdk8`, `7.3-jdk8`](https://github.com/Lightstreamer/Docker/blob/3e0e7b00746f56ef7232b68c5e25afa6d688bd7c/7.3/jdk8/Dockerfile) -- [`7.3.3-jdk11-temurin`, `7.3-jdk11-temurin`, `7.3.3-jdk11`, `7.3-jdk11`](https://github.com/Lightstreamer/Docker/blob/3e0e7b00746f56ef7232b68c5e25afa6d688bd7c/7.3/jdk11/Dockerfile) -- [`7.3.3-jdk17-temurin`, `7.3-jdk17-temurin`, `7.3.3-jdk17`, `7.3-jdk17`, `7.3.3`, `7.3`](https://github.com/Lightstreamer/Docker/blob/3e0e7b00746f56ef7232b68c5e25afa6d688bd7c/7.3/jdk17/Dockerfile) -- [`7.4.0-jdk8-temurin`, `7.4-jdk8-temurin`, `7-jdk8-temurin`, `7.4.0-jdk8`, `7.4-jdk8`, `7-jdk8`](https://github.com/Lightstreamer/Docker/blob/3e0e7b00746f56ef7232b68c5e25afa6d688bd7c/7.4/jdk8/Dockerfile) -- [`7.4.0-jdk11-temurin`, `7.4-jdk11-temurin`, `7-jdk11-temurin`, `7.4.0-jdk11`, `7.4-jdk11`, `7-jdk11`](https://github.com/Lightstreamer/Docker/blob/3e0e7b00746f56ef7232b68c5e25afa6d688bd7c/7.4/jdk11/Dockerfile) -- [`7.4.0-jdk17-temurin`, `7.4-jdk17-temurin`, `7-jdk17-temurin`, `7.4.0-jdk17`, `7.4-jdk17`, `7-jdk17`, `7.4.0`, `7.4`, `7`, `latest`](https://github.com/Lightstreamer/Docker/blob/3e0e7b00746f56ef7232b68c5e25afa6d688bd7c/7.4/jdk17/Dockerfile) +- [`6.0.3`, `6.0`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/6.0/Dockerfile) + +- [`6.1.0`, `6.1`, `6`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/6.1/Dockerfile) + +- [`7.0.3-jdk8-temurin`, `7.0-jdk8-temurin`, `7.0.3-jdk8`, `7.0-jdk8`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/7.0/jdk8/Dockerfile) + +- [`7.0.3-jdk11-temurin`, `7.0-jdk11-temurin`, `7.0.3-jdk11`, `7.0-jdk11`, `7.0.3`, `7.0`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/7.0/jdk11/Dockerfile) + +- [`7.1.3-jdk8-temurin`, `7.1-jdk8-temurin`, `7.1.3-jdk8`, `7.1-jdk8`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/7.1/jdk8/Dockerfile) + +- [`7.1.3-jdk11-temurin`, `7.1-jdk11-temurin`, `7.1.3-jdk11`, `7.1-jdk11`, `7.1.3`, `7.1`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/7.1/jdk11/Dockerfile) + +- [`7.2.2-jdk8-temurin`, `7.2-jdk8-temurin`, `7.2.2-jdk8`, `7.2-jdk8`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/7.2/jdk8/Dockerfile) + +- [`7.2.2-jdk11-temurin`, `7.2-jdk11-temurin`, `7.2.2-jdk11`, `7.2-jdk11`, `7.2.2`, `7.2`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/7.2/jdk11/Dockerfile) + +- [`7.3.3-jdk8-temurin`, `7.3-jdk8-temurin`, `7.3.3-jdk8`, `7.3-jdk8`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/7.3/jdk8/Dockerfile) + +- [`7.3.3-jdk11-temurin`, `7.3-jdk11-temurin`, `7.3.3-jdk11`, `7.3-jdk11`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/7.3/jdk11/Dockerfile) + +- [`7.3.3-jdk17-temurin`, `7.3-jdk17-temurin`, `7.3.3-jdk17`, `7.3-jdk17`, `7.3.3`, `7.3`](https://github.com/Lightstreamer/Docker/blob/b6c4a87af3e78b53887f311bdf2404f4f9956796/7.3/jdk17/Dockerfile) + +- [`7.4.7-jdk8-temurin`, `7.4-jdk8-temurin`, `7-jdk8-temurin`, `7.4.7-jdk8`, `7.4-jdk8`, `7-jdk8`](https://github.com/Lightstreamer/Docker/blob/abea70d53fb366cb5d5402493c37ca4f0b2ab0c1/7.4/jdk8/Dockerfile) + +- [`7.4.7-jdk11-temurin`, `7.4-jdk11-temurin`, `7-jdk11-temurin`, `7.4.7-jdk11`, `7.4-jdk11`, `7-jdk11`](https://github.com/Lightstreamer/Docker/blob/abea70d53fb366cb5d5402493c37ca4f0b2ab0c1/7.4/jdk11/Dockerfile) + +- [`7.4.7-jdk17-temurin`, `7.4-jdk17-temurin`, `7-jdk17-temurin`, `7.4.7-jdk17`, `7.4-jdk17`, `7-jdk17`](https://github.com/Lightstreamer/Docker/blob/abea70d53fb366cb5d5402493c37ca4f0b2ab0c1/7.4/jdk17/Dockerfile) + +- [`7.4.7-jdk21-temurin`, `7.4-jdk21-temurin`, `7-jdk21-temurin`, `7.4.7-jdk21`, `7.4-jdk21`, `7-jdk21`, `7.4.7`, `7.4`, `7`, `latest`](https://github.com/Lightstreamer/Docker/blob/abea70d53fb366cb5d5402493c37ca4f0b2ab0c1/7.4/jdk21/Dockerfile) # Quick reference (cont.) @@ -103,7 +118,7 @@ Alternatively, the above tasks can be executed by deriving a new image through a ```dockerfile FROM lightstreamer -# Please specify a COPY command only for the the required custom configuration file +# Please specify a COPY command only for the required custom configuration file COPY my-lightstreamer_conf.xml /lightstreamer/conf/lightstreamer_conf.xml COPY my-lightstreamer_log_conf.xml /lightstreamer/conf/lightstreamer_log_conf.xml ``` diff --git a/lightstreamer/content.md b/lightstreamer/content.md index 93b07ec16e34..331b84d59ff4 100644 --- a/lightstreamer/content.md +++ b/lightstreamer/content.md @@ -43,7 +43,7 @@ Alternatively, the above tasks can be executed by deriving a new image through a ```dockerfile FROM %%IMAGE%% -# Please specify a COPY command only for the the required custom configuration file +# Please specify a COPY command only for the required custom configuration file COPY my-lightstreamer_conf.xml /lightstreamer/conf/lightstreamer_conf.xml COPY my-lightstreamer_log_conf.xml /lightstreamer/conf/lightstreamer_log_conf.xml ``` diff --git a/lightstreamer/metadata.json b/lightstreamer/metadata.json new file mode 100644 index 000000000000..66ae22756c7e --- /dev/null +++ b/lightstreamer/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "message-queues" + ] + } +} diff --git a/liquibase/README-short.txt b/liquibase/README-short.txt new file mode 100644 index 000000000000..fb08a9ad6f19 --- /dev/null +++ b/liquibase/README-short.txt @@ -0,0 +1 @@ +Liquibase is DevOps for your database. \ No newline at end of file diff --git a/liquibase/README.md b/liquibase/README.md new file mode 100644 index 000000000000..a142515eea45 --- /dev/null +++ b/liquibase/README.md @@ -0,0 +1,98 @@ + + +# Quick reference + +- **Maintained by**: + [Liquibase](https://github.com/liquibase/docker) + +- **Where to get help**: + [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) + +# Supported tags and respective `Dockerfile` links + +- [`4.32`, `4.32.0`, `latest`](https://github.com/liquibase/docker/blob/5f25f074861b619a8bd3a3147d3ceeafb672f717/Dockerfile) + +- [`4.32-alpine`, `4.32.0-alpine`, `alpine`](https://github.com/liquibase/docker/blob/5f25f074861b619a8bd3a3147d3ceeafb672f717/Dockerfile.alpine) + +# Quick reference (cont.) + +- **Where to file issues**: + [https://github.com/liquibase/docker/issues](https://github.com/liquibase/docker/issues?q=) + +- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) + [`amd64`](https://hub.docker.com/r/amd64/liquibase/), [`arm64v8`](https://hub.docker.com/r/arm64v8/liquibase/) + +- **Published image artifact details**: + [repo-info repo's `repos/liquibase/` directory](https://github.com/docker-library/repo-info/blob/master/repos/liquibase) ([history](https://github.com/docker-library/repo-info/commits/master/repos/liquibase)) + (image metadata, transfer size, etc) + +- **Image updates**: + [official-images repo's `library/liquibase` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fliquibase) + [official-images repo's `library/liquibase` file](https://github.com/docker-library/official-images/blob/master/library/liquibase) ([history](https://github.com/docker-library/official-images/commits/master/library/liquibase)) + +- **Source of this description**: + [docs repo's `liquibase/` directory](https://github.com/docker-library/docs/tree/master/liquibase) ([history](https://github.com/docker-library/docs/commits/master/liquibase)) + +# What is Liquibase? + +Liquibase is DevOps for your database. More information about Liquibase can be found at [http://www.liquibase.org](http://www.liquibase.org). + +Liquibase compares the contents of a Change Log to the database to determine which, if any, changes need to be applied to the database. For example, you can create tables, add columns, and many more with Liquibase. Liquibase is delivered via a Docker container to assist users that are leveraging Docker for their CI/CD solution. + +![logo](https://raw.githubusercontent.com/docker-library/docs/bb4f7e2d534d1c4f62ef19bc6b09489e9ba3d8cc/liquibase/logo.png) + +# How to use this image + +If you are executing Liquibase via the command line today, you are probably doing it like so: + +```console +$ liquibase update --driver=org.postgresql.Driver --url="jdbc:postgresql://:/" --changeLogFile=/liquibase/changelog/changelog.xml --username= --password= +``` + +The only change to use this docker image, is to use `docker run ...` and mount the folder containing your changelog.xml (or .yml or .json or .sql) to `/liquibase/changelog` in the Liquibase container + +```console +$ docker run -v /home/user/changelog:/liquibase/changelog liquibase --driver=org.postgresql.Driver --url="jdbc:postgresql://:/" --changeLogFile=/liquibase/changelog/changelog.xml --username= --password= +``` + +All Liquibase commands, such as `rollback`, `updateSQL`, and others, are available, as well. + +# Image Variants + +The `liquibase` images come in many flavors, each designed for a specific use case. + +## `liquibase:` + +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. + +## `liquibase:-alpine` + +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. + +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. + +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). + +# License + +View [license information](https://github.com/liquibase/liquibase/blob/master/LICENSE.txt) for the Liquibase software contained in this image. + +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). + +Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `liquibase/` directory](https://github.com/docker-library/repo-info/tree/master/repos/liquibase). + +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. diff --git a/liquibase/content.md b/liquibase/content.md new file mode 100644 index 000000000000..b0b21d2f1cb0 --- /dev/null +++ b/liquibase/content.md @@ -0,0 +1,23 @@ +# What is Liquibase? + +Liquibase is DevOps for your database. More information about Liquibase can be found at [http://www.liquibase.org](http://www.liquibase.org). + +Liquibase compares the contents of a Change Log to the database to determine which, if any, changes need to be applied to the database. For example, you can create tables, add columns, and many more with Liquibase. Liquibase is delivered via a Docker container to assist users that are leveraging Docker for their CI/CD solution. + +%%LOGO%% + +# How to use this image + +If you are executing Liquibase via the command line today, you are probably doing it like so: + +```console +$ liquibase update --driver=org.postgresql.Driver --url="jdbc:postgresql://:/" --changeLogFile=/liquibase/changelog/changelog.xml --username= --password= +``` + +The only change to use this docker image, is to use `docker run ...` and mount the folder containing your changelog.xml (or .yml or .json or .sql) to `/liquibase/changelog` in the Liquibase container + +```console +$ docker run -v /home/user/changelog:/liquibase/changelog %%IMAGE%% --driver=org.postgresql.Driver --url="jdbc:postgresql://:/" --changeLogFile=/liquibase/changelog/changelog.xml --username= --password= +``` + +All Liquibase commands, such as `rollback`, `updateSQL`, and others, are available, as well. diff --git a/liquibase/github-repo b/liquibase/github-repo new file mode 100644 index 000000000000..2d758d9c20e6 --- /dev/null +++ b/liquibase/github-repo @@ -0,0 +1 @@ +https://github.com/liquibase/docker diff --git a/liquibase/license.md b/liquibase/license.md new file mode 100644 index 000000000000..f80fe12052df --- /dev/null +++ b/liquibase/license.md @@ -0,0 +1 @@ +View [license information](https://github.com/liquibase/liquibase/blob/master/LICENSE.txt) for the Liquibase software contained in this image. diff --git a/liquibase/logo.png b/liquibase/logo.png new file mode 100644 index 000000000000..9f6d31750b24 Binary files /dev/null and b/liquibase/logo.png differ diff --git a/liquibase/maintainer.md b/liquibase/maintainer.md new file mode 100644 index 000000000000..43a5852a9422 --- /dev/null +++ b/liquibase/maintainer.md @@ -0,0 +1 @@ +[Liquibase](%%GITHUB-REPO%%) diff --git a/liquibase/metadata.json b/liquibase/metadata.json new file mode 100644 index 000000000000..67e782480585 --- /dev/null +++ b/liquibase/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "developer-tools" + ] + } +} diff --git a/logstash/README.md b/logstash/README.md index 35ba059c51f2..e56cfe1d6fec 100644 --- a/logstash/README.md +++ b/logstash/README.md @@ -24,8 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.11.1`](https://github.com/docker-library/logstash/blob/7866ca9dec9586e2e4a1a8d19a2958dfac93cede/8/Dockerfile) -- [`7.17.15`](https://github.com/docker-library/logstash/blob/e8bb7b091d72d4592901eb24379c9dde4975775f/7/Dockerfile) +- [`7.17.28`](https://github.com/elastic/dockerfiles/blob/2ef7e0a0be5abd21cb38a39c3cce65d5278ebfee/logstash/Dockerfile) + +- [`8.17.6`](https://github.com/elastic/dockerfiles/blob/d7216d19313f88d63f43b52df31da2b4ae6ace3c/logstash/Dockerfile) + +- [`8.18.2`](https://github.com/elastic/dockerfiles/blob/1224fffeb3ad5be8a373d52d0906a6c70146b27b/logstash/Dockerfile) + +- [`9.0.2`](https://github.com/elastic/dockerfiles/blob/6e12e2f27f2ef93e0e22aa6b8775b77d19fe4271/logstash/Dockerfile) # Quick reference (cont.) diff --git a/logstash/metadata.json b/logstash/metadata.json new file mode 100644 index 000000000000..5f9ae9afb8e1 --- /dev/null +++ b/logstash/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "monitoring-and-observability" + ] + } +} diff --git a/mageia/README.md b/mageia/README.md index f373d57f0700..1ed4433e127b 100644 --- a/mageia/README.md +++ b/mageia/README.md @@ -24,9 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8`, `latest`](https://github.com/juanluisbaptiste/docker-brew-mageia/blob/067e6df19c568e101a42dc71b77f6a2de5992c70/dist/8/x86_64/Dockerfile) -- [`7`](https://github.com/juanluisbaptiste/docker-brew-mageia/blob/067e6df19c568e101a42dc71b77f6a2de5992c70/dist/7/x86_64/Dockerfile) -- [`cauldron`](https://github.com/juanluisbaptiste/docker-brew-mageia/blob/067e6df19c568e101a42dc71b77f6a2de5992c70/dist/cauldron/x86_64/Dockerfile) +- [`9`, `latest`](https://github.com/juanluisbaptiste/docker-brew-mageia/blob/a33ee87c937363a457b13a30e584e66c0e0a396f/dist/9/x86_64/Dockerfile) + +- [`cauldron`](https://github.com/juanluisbaptiste/docker-brew-mageia/blob/a33ee87c937363a457b13a30e584e66c0e0a396f/dist/cauldron/x86_64/Dockerfile) # Quick reference (cont.) diff --git a/mageia/metadata.json b/mageia/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/mageia/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/mariadb/README.md b/mariadb/README.md index 2133c49bb2fd..bbf0d0dd97c3 100644 --- a/mariadb/README.md +++ b/mariadb/README.md @@ -26,14 +26,25 @@ Also see the ["Getting Help with MariaDB" article on the MariaDB Knowledge Base] # Supported tags and respective `Dockerfile` links -- [`11.2.1-rc-jammy`, `11.2-rc-jammy`, `11.2.1-rc`, `11.2-rc`](https://github.com/MariaDB/mariadb-docker/blob/6852b71f228e3d003dd7ce6db3627c5b10cfc1a0/11.2/Dockerfile) -- [`11.1.3-jammy`, `11.1-jammy`, `11-jammy`, `jammy`, `11.1.3`, `11.1`, `11`, `latest`](https://github.com/MariaDB/mariadb-docker/blob/38b234791e8fe1939a805d35509088933049284d/11.1/Dockerfile) -- [`11.0.4-jammy`, `11.0-jammy`, `11.0.4`, `11.0`](https://github.com/MariaDB/mariadb-docker/blob/38b234791e8fe1939a805d35509088933049284d/11.0/Dockerfile) -- [`10.11.6-jammy`, `10.11-jammy`, `10-jammy`, `lts-jammy`, `10.11.6`, `10.11`, `10`, `lts`](https://github.com/MariaDB/mariadb-docker/blob/38b234791e8fe1939a805d35509088933049284d/10.11/Dockerfile) -- [`10.10.7-jammy`, `10.10-jammy`, `10.10.7`, `10.10`](https://github.com/MariaDB/mariadb-docker/blob/38b234791e8fe1939a805d35509088933049284d/10.10/Dockerfile) -- [`10.6.16-focal`, `10.6-focal`, `10.6.16`, `10.6`](https://github.com/MariaDB/mariadb-docker/blob/38b234791e8fe1939a805d35509088933049284d/10.6/Dockerfile) -- [`10.5.23-focal`, `10.5-focal`, `10.5.23`, `10.5`](https://github.com/MariaDB/mariadb-docker/blob/38b234791e8fe1939a805d35509088933049284d/10.5/Dockerfile) -- [`10.4.32-focal`, `10.4-focal`, `10.4.32`, `10.4`](https://github.com/MariaDB/mariadb-docker/blob/38b234791e8fe1939a805d35509088933049284d/10.4/Dockerfile) +- [`12.0.1-ubi9-rc`, `12.0-ubi9-rc`, `12.0.1-ubi-rc`, `12.0-ubi-rc`](https://github.com/MariaDB/mariadb-docker/blob/e9903b927ef46dc55fc6900ab015e4314349699a/12.0-ubi/Dockerfile) + +- [`12.0.1-noble-rc`, `12.0-noble-rc`, `12.0.1-rc`, `12.0-rc`](https://github.com/MariaDB/mariadb-docker/blob/e9903b927ef46dc55fc6900ab015e4314349699a/12.0/Dockerfile) + +- [`11.8.2-ubi9`, `11.8-ubi9`, `11-ubi9`, `lts-ubi9`, `11.8.2-ubi`, `11.8-ubi`, `11-ubi`, `lts-ubi`](https://github.com/MariaDB/mariadb-docker/blob/4c5048803b4785a1ef057c2d4c48b126a08348c6/11.8-ubi/Dockerfile) + +- [`11.8.2-noble`, `11.8-noble`, `11-noble`, `noble`, `lts-noble`, `11.8.2`, `11.8`, `11`, `latest`, `lts`](https://github.com/MariaDB/mariadb-docker/blob/4c5048803b4785a1ef057c2d4c48b126a08348c6/11.8/Dockerfile) + +- [`11.4.7-ubi9`, `11.4-ubi9`, `11.4.7-ubi`, `11.4-ubi`](https://github.com/MariaDB/mariadb-docker/blob/a272347802e1764dd8c0e15ba2b2abfeeadb3bb6/11.4-ubi/Dockerfile) + +- [`11.4.7-noble`, `11.4-noble`, `11.4.7`, `11.4`](https://github.com/MariaDB/mariadb-docker/blob/a272347802e1764dd8c0e15ba2b2abfeeadb3bb6/11.4/Dockerfile) + +- [`10.11.13-ubi9`, `10.11-ubi9`, `10-ubi9`, `10.11.13-ubi`, `10.11-ubi`, `10-ubi`](https://github.com/MariaDB/mariadb-docker/blob/a272347802e1764dd8c0e15ba2b2abfeeadb3bb6/10.11-ubi/Dockerfile) + +- [`10.11.13-jammy`, `10.11-jammy`, `10-jammy`, `10.11.13`, `10.11`, `10`](https://github.com/MariaDB/mariadb-docker/blob/a272347802e1764dd8c0e15ba2b2abfeeadb3bb6/10.11/Dockerfile) + +- [`10.6.22-ubi9`, `10.6-ubi9`, `10.6.22-ubi`, `10.6-ubi`](https://github.com/MariaDB/mariadb-docker/blob/c5669903a1c1f711039de61e480fbfd3549e1f86/10.6-ubi/Dockerfile) + +- [`10.6.22-jammy`, `10.6-jammy`](https://github.com/MariaDB/mariadb-docker/blob/9bc98d6905a26282e6209da20970d9d4b055a384/10.6-jammy/Dockerfile) # Quick reference (cont.) @@ -68,35 +79,44 @@ The mariadb has a number of tags, and of note is `latest`, as the latest stable ## Running the container +### Configuration + +#### Port binding + +By default, the database running within the container will listen on port 3306. You can expose the container port 3306 to the host port 3306 with the `-p 3306:3306` argument to `docker run`, like the command below: + +```console +$ docker run --name some-mariadb -p 3306:3306 mariadb:latest +``` + ### Starting using a minimal configuration The environment variables required to use this image involves the setting of the root user password: ```console -$ docker run --detach --name some-mariadb --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest +$ docker run --detach --name some-mariadb --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest ``` or: ```console -$ docker run --detach --name some-mariadb --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 mariadb:latest +$ docker run --detach --name some-mariadb --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 mariadb:latest ``` or: ```console -$ docker run --detach --name some-mariadb --env MARIADB_RANDOM_ROOT_PASSWORD=1 mariadb:latest +$ docker run --detach --name some-mariadb --env MARIADB_RANDOM_ROOT_PASSWORD=1 mariadb:latest ``` ... where the container logs will contain the generated root password. -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `mariadb`: +Example `compose.yaml` for `mariadb`: ```yaml # Use root/example as user/password credentials -version: '3.1' services: @@ -113,16 +133,14 @@ services: - 8080:8080 ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/cf3a7fba4dfd134e3f7f5921b580c71e0fd8bc24/mariadb/stack.yml) - -Run `docker stack deploy -c stack.yml mariadb` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ### Start a `mariadb` server instance with user, password and database Starting a MariaDB instance with a user, password, and a database: ```console -$ docker run --detach --name some-mariadb --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_DATABASE=exmple-database --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest +$ docker run --detach --name some-mariadb --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_DATABASE=exmple-database --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest ``` ### Start a `mariadb` server instance in a network @@ -131,8 +149,8 @@ As applications talk to MariaDB, MariaDB needs to start in the same network as t ```console $ docker network create some-network -$ docker run --detach --network some-network --name some-mariadb --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest -$ docker run --detach --network some-network --name some-application --env APP_DB_HOST=some-mariadb --env APP_DB_USER=example-user --env APP_DB_PASSWD=my_cool_secret some-application +$ docker run --detach --network some-network --name some-mariadb --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_ROOT_PASSWORD=my-secret-pw mariadb:latest +$ docker run --detach --network some-network --name some-application --env APP_DB_HOST=some-mariadb --env APP_DB_USER=example-user --env APP_DB_PASSWD=my_cool_secret some-application ``` ... where `some-network` is a newly created network (other than `bridge` as the default network), `some-mariadb` is the name you want to assign to your container, `my-secret-pw` is the password to be set for the MariaDB root user. See the list above for relevant tags to match your needs and environment. `some-application` and then environment variable `APP_DB_HOST`, `APP_DB_USER` and `APP_DB_PASSWD` are the application's configuration for its database connection. @@ -142,7 +160,7 @@ $ docker run --detach --network some-network --name some-application --env APP_D The following command starts another `mariadb` container instance and runs the `mariadb` command line client against your original `mariadb` container, allowing you to execute SQL statements against your database instance: ```console -$ docker run -it --network some-network --rm mariadb mariadb -hsome-mariadb -uexample-user -p +$ docker run -it --network some-network --rm mariadb mariadb -h some-mariadb -u example-user ``` ... where `some-mariadb` is the name of your original `mariadb` container (connected to the `some-network` Docker network). @@ -263,7 +281,7 @@ $ docker run --name some-mysql -e MARIADB_ROOT_PASSWORD_FILE=/run/secrets/mariad # Initializing the database contents -When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql`, `.sql.gz`, `.sql.xz` and `.sql.zst` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. `.sh` files without file execute permission are sourced rather than executed. You can easily populate your `mariadb` services by [mounting a SQL dump into that directory](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-file-as-a-data-volume) and provide [custom images](https://docs.docker.com/reference/builder/) with contributed data. SQL files will be imported by default to the database specified by the `MARIADB_DATABASE` variable. +When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql`, `.sql.gz`, `.sql.xz` and `.sql.zst` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. `.sh` files without file execute permission are sourced rather than executed. You can easily populate your `mariadb` services by [mounting a SQL dump into that directory](https://docs.docker.com/storage/bind-mounts/) and provide [custom images](https://docs.docker.com/reference/dockerfile/) with contributed data. SQL files will be imported by default to the database specified by the `MARIADB_DATABASE` variable. # Caveats @@ -271,8 +289,8 @@ When a container is started for the first time, a new database with the specifie Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `mariadb` images to familiarize themselves with the options available, including: -- Use a named volume using the container manager to manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Use a named volume using the container manager to manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: @@ -287,7 +305,7 @@ The `-v /my/own/datadir:/var/lib/mysql:Z` part of the command mounts the `/my/ow ## No connections until MariaDB init completes -If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker-compose`, which start several containers simultaneously. +If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker compose`, which start several containers simultaneously. ## Health/Liveness/Readiness Checking diff --git a/mariadb/stack.yml b/mariadb/compose.yaml similarity index 94% rename from mariadb/stack.yml rename to mariadb/compose.yaml index d5b571712ddb..25409b7e28ae 100644 --- a/mariadb/stack.yml +++ b/mariadb/compose.yaml @@ -1,5 +1,4 @@ # Use root/example as user/password credentials -version: '3.1' services: diff --git a/mariadb/content.md b/mariadb/content.md index 2906b21dc290..c66738c9692d 100644 --- a/mariadb/content.md +++ b/mariadb/content.md @@ -12,38 +12,48 @@ The %%IMAGE%% has a number of tags, and of note is `latest`, as the latest stabl ## Running the container +### Configuration + +#### Port binding + +By default, the database running within the container will listen on port 3306. You can expose the container port 3306 to the host port 3306 with the `-p 3306:3306` argument to `docker run`, like the command below: + +```console +$ docker run --name some-%%REPO%% -p 3306:3306 %%IMAGE%%:latest +``` + ### Starting using a minimal configuration The environment variables required to use this image involves the setting of the root user password: ```console -$ docker run --detach --name some-%%REPO%% --env MARIADB_ROOT_PASSWORD=my-secret-pw %%IMAGE%%:latest +$ docker run --detach --name some-%%REPO%% --env MARIADB_ROOT_PASSWORD=my-secret-pw %%IMAGE%%:latest ``` or: ```console -$ docker run --detach --name some-%%REPO%% --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 %%IMAGE%%:latest +$ docker run --detach --name some-%%REPO%% --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 %%IMAGE%%:latest ``` or: ```console -$ docker run --detach --name some-%%REPO%% --env MARIADB_RANDOM_ROOT_PASSWORD=1 %%IMAGE%%:latest +$ docker run --detach --name some-%%REPO%% --env MARIADB_RANDOM_ROOT_PASSWORD=1 %%IMAGE%%:latest ``` ... where the container logs will contain the generated root password. -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ### Start a `%%IMAGE%%` server instance with user, password and database Starting a MariaDB instance with a user, password, and a database: ```console -$ docker run --detach --name some-%%REPO%% --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_DATABASE=exmple-database --env MARIADB_ROOT_PASSWORD=my-secret-pw %%IMAGE%%:latest +$ docker run --detach --name some-%%REPO%% --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_DATABASE=exmple-database --env MARIADB_ROOT_PASSWORD=my-secret-pw %%IMAGE%%:latest ``` ### Start a `%%IMAGE%%` server instance in a network @@ -52,8 +62,8 @@ As applications talk to MariaDB, MariaDB needs to start in the same network as t ```console $ docker network create some-network -$ docker run --detach --network some-network --name some-%%REPO%% --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_ROOT_PASSWORD=my-secret-pw %%IMAGE%%:latest -$ docker run --detach --network some-network --name some-application --env APP_DB_HOST=some-%%REPO%% --env APP_DB_USER=example-user --env APP_DB_PASSWD=my_cool_secret some-application +$ docker run --detach --network some-network --name some-%%REPO%% --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_ROOT_PASSWORD=my-secret-pw %%IMAGE%%:latest +$ docker run --detach --network some-network --name some-application --env APP_DB_HOST=some-%%REPO%% --env APP_DB_USER=example-user --env APP_DB_PASSWD=my_cool_secret some-application ``` ... where `some-network` is a newly created network (other than `bridge` as the default network), `some-%%REPO%%` is the name you want to assign to your container, `my-secret-pw` is the password to be set for the MariaDB root user. See the list above for relevant tags to match your needs and environment. `some-application` and then environment variable `APP_DB_HOST`, `APP_DB_USER` and `APP_DB_PASSWD` are the application's configuration for its database connection. @@ -63,7 +73,7 @@ $ docker run --detach --network some-network --name some-application --env APP_D The following command starts another `%%IMAGE%%` container instance and runs the `mariadb` command line client against your original `%%IMAGE%%` container, allowing you to execute SQL statements against your database instance: ```console -$ docker run -it --network some-network --rm %%IMAGE%% mariadb -hsome-%%REPO%% -uexample-user -p +$ docker run -it --network some-network --rm %%IMAGE%% mariadb -h some-%%REPO%% -u example-user ``` ... where `some-%%REPO%%` is the name of your original `%%IMAGE%%` container (connected to the `some-network` Docker network). @@ -184,7 +194,7 @@ $ docker run --name some-mysql -e MARIADB_ROOT_PASSWORD_FILE=/run/secrets/mariad # Initializing the database contents -When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql`, `.sql.gz`, `.sql.xz` and `.sql.zst` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. `.sh` files without file execute permission are sourced rather than executed. You can easily populate your `%%IMAGE%%` services by [mounting a SQL dump into that directory](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-file-as-a-data-volume) and provide [custom images](https://docs.docker.com/reference/builder/) with contributed data. SQL files will be imported by default to the database specified by the `MARIADB_DATABASE` variable. +When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql`, `.sql.gz`, `.sql.xz` and `.sql.zst` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. `.sh` files without file execute permission are sourced rather than executed. You can easily populate your `%%IMAGE%%` services by [mounting a SQL dump into that directory](https://docs.docker.com/storage/bind-mounts/) and provide [custom images](https://docs.docker.com/reference/dockerfile/) with contributed data. SQL files will be imported by default to the database specified by the `MARIADB_DATABASE` variable. # Caveats @@ -192,8 +202,8 @@ When a container is started for the first time, a new database with the specifie Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `%%IMAGE%%` images to familiarize themselves with the options available, including: -- Use a named volume using the container manager to manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Use a named volume using the container manager to manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: @@ -208,7 +218,7 @@ The `-v /my/own/datadir:/var/lib/mysql:Z` part of the command mounts the `/my/ow ## No connections until MariaDB init completes -If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker-compose`, which start several containers simultaneously. +If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker compose`, which start several containers simultaneously. ## Health/Liveness/Readiness Checking diff --git a/mariadb/metadata.json b/mariadb/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/mariadb/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/markdownfmt.sh b/markdownfmt.sh index 43eb694c2fb8..68ad67f9a33c 100755 --- a/markdownfmt.sh +++ b/markdownfmt.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -e exec docker run -i --rm -v "$PWD":/scratch -w /scratch -u "$(id -u):$(id -g)" tianon/markdownfmt markdownfmt "$@" diff --git a/matomo/README.md b/matomo/README.md index fd608fde30e9..d30c45357a91 100644 --- a/matomo/README.md +++ b/matomo/README.md @@ -24,9 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`4.15.1-apache`, `4.15-apache`, `4-apache`, `apache`, `4.15.1`, `4.15`, `4`, `latest`](https://github.com/matomo-org/docker/blob/a504fe92ae03210bd93d35574043c690ea2b6aa5/apache/Dockerfile) -- [`4.15.1-fpm`, `4.15-fpm`, `4-fpm`, `fpm`](https://github.com/matomo-org/docker/blob/a504fe92ae03210bd93d35574043c690ea2b6aa5/fpm/Dockerfile) -- [`4.15.1-fpm-alpine`, `4.15-fpm-alpine`, `4-fpm-alpine`, `fpm-alpine`](https://github.com/matomo-org/docker/blob/a504fe92ae03210bd93d35574043c690ea2b6aa5/fpm-alpine/Dockerfile) +- [`5.3.2-apache`, `5.3-apache`, `5-apache`, `apache`, `5.3.2`, `5.3`, `5`, `latest`](https://github.com/matomo-org/docker/blob/82fa89f13413cae2cc185416dce5ce4a6baeb618/apache/Dockerfile) + +- [`5.3.2-fpm`, `5.3-fpm`, `5-fpm`, `fpm`](https://github.com/matomo-org/docker/blob/82fa89f13413cae2cc185416dce5ce4a6baeb618/fpm/Dockerfile) + +- [`5.3.2-fpm-alpine`, `5.3-fpm-alpine`, `5-fpm-alpine`, `fpm-alpine`](https://github.com/matomo-org/docker/blob/82fa89f13413cae2cc185416dce5ce4a6baeb618/fpm-alpine/Dockerfile) # Quick reference (cont.) @@ -34,7 +36,7 @@ WARNING: [https://github.com/matomo-org/docker/issues](https://github.com/matomo-org/docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/matomo/), [`arm32v5`](https://hub.docker.com/r/arm32v5/matomo/), [`arm32v6`](https://hub.docker.com/r/arm32v6/matomo/), [`arm32v7`](https://hub.docker.com/r/arm32v7/matomo/), [`arm64v8`](https://hub.docker.com/r/arm64v8/matomo/), [`i386`](https://hub.docker.com/r/i386/matomo/), [`mips64le`](https://hub.docker.com/r/mips64le/matomo/), [`ppc64le`](https://hub.docker.com/r/ppc64le/matomo/), [`s390x`](https://hub.docker.com/r/s390x/matomo/) + [`amd64`](https://hub.docker.com/r/amd64/matomo/), [`arm32v5`](https://hub.docker.com/r/arm32v5/matomo/), [`arm32v6`](https://hub.docker.com/r/arm32v6/matomo/), [`arm32v7`](https://hub.docker.com/r/arm32v7/matomo/), [`arm64v8`](https://hub.docker.com/r/arm64v8/matomo/), [`i386`](https://hub.docker.com/r/i386/matomo/), [`mips64le`](https://hub.docker.com/r/mips64le/matomo/), [`ppc64le`](https://hub.docker.com/r/ppc64le/matomo/), [`riscv64`](https://hub.docker.com/r/riscv64/matomo/), [`s390x`](https://hub.docker.com/r/s390x/matomo/) - **Published image artifact details**: [repo-info repo's `repos/matomo/` directory](https://github.com/docker-library/repo-info/blob/master/repos/matomo) ([history](https://github.com/docker-library/repo-info/commits/master/repos/matomo)) @@ -63,7 +65,7 @@ WARNING: You can run the Matomo container and service like so: -```console +```bash docker run -d --link some-mysql:db matomo ``` @@ -73,8 +75,8 @@ This assumes you've already launched a suitable MySQL or MariaDB database contai Use a Docker volume to keep persistent data: -```console -docker run -d --link some-mysql:db -v matomo:/var/www/html matomo +```bash +docker run -d -p 8080:80 --link some-mysql:db -v matomo:/var/www/html matomo ``` ## Matomo Installation @@ -99,28 +101,29 @@ The following environment variables are also honored for configuring your Matomo - `MATOMO_DATABASE_PASSWORD` - `MATOMO_DATABASE_DBNAME` -## Docker-compose examples and log import instructions +The PHP memory limit can be configured with the following environment variable: + +- `PHP_MEMORY_LIMIT` -A minimal set-up using docker-compose is available in the [.examples folder](https://github.com/matomo-org/docker/tree/master/.examples). +## Docker Compose examples and log import instructions + +A minimal set-up using Docker Compose is available in the [.examples folder](https://github.com/matomo-org/docker/tree/master/.examples). If you want to use the import logs script, you can then run the following container as needed, in order to execute the python import logs script: -```console -docker run --rm --volumes-from="matomo_app_1" --link matomo_app_1 python:2-alpine python /var/www/html/misc/log-analytics/import_logs.py --url=http://ip.of.your.piwik --login=yourlogin --password=yourpassword --idsite=1 --recorders=4 /var/www/html/logs/access.log +```bash +docker run --rm --volumes-from="matomo-app-1" --link matomo-app-1 python:3-alpine python /var/www/html/misc/log-analytics/import_logs.py --url=http://ip.of.your.matomo.example --login=yourlogin --password=yourpassword --idsite=1 --recorders=4 /var/www/html/logs/access.log ``` ## Contribute Pull requests are very welcome! -We'd love to hear your feedback and suggestions in the issue tracker: [github.com/motomo-org/docker/issues](https://github.com/matomo-org/docker/issues). +We'd love to hear your feedback and suggestions in the issue tracker: [[https://github.com/matomo-org/docker/issues](https://github.com/matomo-org/docker/issues?q=)]([https://github.com/matomo-org/docker/issues](https://github.com/matomo-org/docker/issues?q=)). ## GeoIP -~~This product includes GeoLite data created by MaxMind, available from [http://www.maxmind.com](http://www.maxmind.com).~~ - -- https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/ -- https://matomo.org/faq/how-to/faq_163/ +~~This product includes GeoLite data created by MaxMind, available from [https://www.maxmind.com](https://www.maxmind.com).~~ https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/ # Image Variants diff --git a/matomo/content.md b/matomo/content.md index a8eb082f0f75..4ac9e8db8806 100644 --- a/matomo/content.md +++ b/matomo/content.md @@ -14,8 +14,8 @@ You can run the Matomo container and service like so: -```console -docker run -d --link some-mysql:db matomo +```bash +docker run -d --link some-mysql:db %%IMAGE%% ``` This assumes you've already launched a suitable MySQL or MariaDB database container. @@ -24,8 +24,8 @@ This assumes you've already launched a suitable MySQL or MariaDB database contai Use a Docker volume to keep persistent data: -```console -docker run -d --link some-mysql:db -v matomo:/var/www/html matomo +```bash +docker run -d -p 8080:80 --link some-mysql:db -v matomo:/var/www/html %%IMAGE%% ``` ## Matomo Installation @@ -50,25 +50,26 @@ The following environment variables are also honored for configuring your Matomo - `MATOMO_DATABASE_PASSWORD` - `MATOMO_DATABASE_DBNAME` -## Docker-compose examples and log import instructions +The PHP memory limit can be configured with the following environment variable: -A minimal set-up using docker-compose is available in the [.examples folder](https://github.com/matomo-org/docker/tree/master/.examples). +- `PHP_MEMORY_LIMIT` + +## Docker Compose examples and log import instructions + +A minimal set-up using Docker Compose is available in the [.examples folder](%%GITHUB-REPO%%/tree/master/.examples). If you want to use the import logs script, you can then run the following container as needed, in order to execute the python import logs script: -```console -docker run --rm --volumes-from="matomo_app_1" --link matomo_app_1 python:2-alpine python /var/www/html/misc/log-analytics/import_logs.py --url=http://ip.of.your.piwik --login=yourlogin --password=yourpassword --idsite=1 --recorders=4 /var/www/html/logs/access.log +```bash +docker run --rm --volumes-from="matomo-app-1" --link matomo-app-1 python:3-alpine python /var/www/html/misc/log-analytics/import_logs.py --url=http://ip.of.your.matomo.example --login=yourlogin --password=yourpassword --idsite=1 --recorders=4 /var/www/html/logs/access.log ``` ## Contribute Pull requests are very welcome! -We'd love to hear your feedback and suggestions in the issue tracker: [github.com/motomo-org/docker/issues](https://github.com/matomo-org/docker/issues). +We'd love to hear your feedback and suggestions in the issue tracker: [%%ISSUES%%](%%ISSUES%%). ## GeoIP -~~This product includes GeoLite data created by MaxMind, available from [http://www.maxmind.com](http://www.maxmind.com).~~ - -- https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/ -- https://matomo.org/faq/how-to/faq_163/ +~~This product includes GeoLite data created by MaxMind, available from [https://www.maxmind.com](https://www.maxmind.com).~~ https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/ diff --git a/matomo/metadata.json b/matomo/metadata.json new file mode 100644 index 000000000000..5f9ae9afb8e1 --- /dev/null +++ b/matomo/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "monitoring-and-observability" + ] + } +} diff --git a/maven/README.md b/maven/README.md index b830001de097..697c0886c75a 100644 --- a/maven/README.md +++ b/maven/README.md @@ -24,35 +24,87 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.9.5-eclipse-temurin-11`, `3.9-eclipse-temurin-11`, `3-eclipse-temurin-11`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-11/Dockerfile) -- [`3.9.5-eclipse-temurin-11-alpine`, `3.9-eclipse-temurin-11-alpine`, `3-eclipse-temurin-11-alpine`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-11-alpine/Dockerfile) -- [`3.9.5-eclipse-temurin-11-focal`, `3.9-eclipse-temurin-11-focal`, `3-eclipse-temurin-11-focal`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-11-focal/Dockerfile) -- [`3.9.5-eclipse-temurin-17`, `3.9-eclipse-temurin-17`, `3-eclipse-temurin-17`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-17/Dockerfile) -- [`3.9.5-eclipse-temurin-17-alpine`, `3.9-eclipse-temurin-17-alpine`, `3-eclipse-temurin-17-alpine`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-17-alpine/Dockerfile) -- [`3.9.5-eclipse-temurin-17-focal`, `3.9-eclipse-temurin-17-focal`, `3-eclipse-temurin-17-focal`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-17-focal/Dockerfile) -- [`3.9.5-eclipse-temurin-21`, `3.9.5`, `3.9.5-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/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-21/Dockerfile) -- [`3.9.5-eclipse-temurin-21-alpine`, `3.9-eclipse-temurin-21-alpine`, `3-eclipse-temurin-21-alpine`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-21-alpine/Dockerfile) -- [`3.9.5-eclipse-temurin-8`, `3.9-eclipse-temurin-8`, `3-eclipse-temurin-8`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-8/Dockerfile) -- [`3.9.5-eclipse-temurin-8-alpine`, `3.9-eclipse-temurin-8-alpine`, `3-eclipse-temurin-8-alpine`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-8-alpine/Dockerfile) -- [`3.9.5-eclipse-temurin-8-focal`, `3.9-eclipse-temurin-8-focal`, `3-eclipse-temurin-8-focal`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/eclipse-temurin-8-focal/Dockerfile) -- [`3.9.5-ibmjava-8`, `3.9.5-ibmjava`, `3.9-ibmjava-8`, `3.9-ibmjava`, `3-ibmjava-8`, `3-ibmjava`, `ibmjava`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/ibmjava-8/Dockerfile) -- [`3.9.5-ibm-semeru-11-focal`, `3.9-ibm-semeru-11-focal`, `3-ibm-semeru-11-focal`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/ibm-semeru-11-focal/Dockerfile) -- [`3.9.5-ibm-semeru-17-focal`, `3.9-ibm-semeru-17-focal`, `3-ibm-semeru-17-focal`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/ibm-semeru-17-focal/Dockerfile) -- [`3.9.5-amazoncorretto-11`, `3.9.5-amazoncorretto`, `3.9-amazoncorretto-11`, `3.9-amazoncorretto`, `3-amazoncorretto-11`, `3-amazoncorretto`, `amazoncorretto`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-11/Dockerfile) -- [`3.9.5-amazoncorretto-11-al2023`, `3.9-amazoncorretto-11-al2023`, `3-amazoncorretto-11-al2023`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-11-al2023/Dockerfile) -- [`3.9.5-amazoncorretto-11-debian`, `3.9.5-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/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-11-debian/Dockerfile) -- [`3.9.5-amazoncorretto-17`, `3.9-amazoncorretto-17`, `3-amazoncorretto-17`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-17/Dockerfile) -- [`3.9.5-amazoncorretto-17-al2023`, `3.9-amazoncorretto-17-al2023`, `3-amazoncorretto-17-al2023`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-17-al2023/Dockerfile) -- [`3.9.5-amazoncorretto-17-debian`, `3.9.5-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/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-17-debian/Dockerfile) -- [`3.9.5-amazoncorretto-21`, `3.9-amazoncorretto-21`, `3-amazoncorretto-21`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-21/Dockerfile) -- [`3.9.5-amazoncorretto-21-al2023`, `3.9-amazoncorretto-21-al2023`, `3-amazoncorretto-21-al2023`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-21-al2023/Dockerfile) -- [`3.9.5-amazoncorretto-21-debian`, `3.9.5-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/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-21-debian/Dockerfile) -- [`3.9.5-amazoncorretto-8`, `3.9-amazoncorretto-8`, `3-amazoncorretto-8`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-8/Dockerfile) -- [`3.9.5-amazoncorretto-8-al2023`, `3.9-amazoncorretto-8-al2023`, `3-amazoncorretto-8-al2023`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-8-al2023/Dockerfile) -- [`3.9.5-amazoncorretto-8-debian`, `3.9.5-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/ce7950e684a067136fa6dfa810193a0ca7e78ad7/amazoncorretto-8-debian/Dockerfile) -- [`3.9.5-sapmachine-11`, `3.9-sapmachine-11`, `3-sapmachine-11`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/sapmachine-11/Dockerfile) -- [`3.9.5-sapmachine-17`, `3.9-sapmachine-17`, `3-sapmachine-17`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/sapmachine-17/Dockerfile) -- [`3.9.5-sapmachine-21`, `3.9.5-sapmachine`, `3.9-sapmachine-21`, `3.9-sapmachine`, `3-sapmachine-21`, `3-sapmachine`, `sapmachine`](https://github.com/carlossg/docker-maven/blob/ce7950e684a067136fa6dfa810193a0ca7e78ad7/sapmachine-21/Dockerfile) +- [`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) + +- [`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) + +- [`3.9.9-eclipse-temurin-11-noble`, `3.9-eclipse-temurin-11-noble`, `3-eclipse-temurin-11-noble`](https://github.com/carlossg/docker-maven/blob/999b218fb0188c75751755c9cb1aebedecb70351/eclipse-temurin-11-noble/Dockerfile) + +- [`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) + +- [`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) + +- [`3.9.9-eclipse-temurin-17-noble`, `3.9-eclipse-temurin-17-noble`, `3-eclipse-temurin-17-noble`](https://github.com/carlossg/docker-maven/blob/999b218fb0188c75751755c9cb1aebedecb70351/eclipse-temurin-17-noble/Dockerfile) + +- [`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) + +- [`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) + +- [`3.9.9-eclipse-temurin-21-noble`, `3.9-eclipse-temurin-21-noble`, `3-eclipse-temurin-21-noble`](https://github.com/carlossg/docker-maven/blob/999b218fb0188c75751755c9cb1aebedecb70351/eclipse-temurin-21-noble/Dockerfile) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`3.9.9-eclipse-temurin-8-noble`, `3.9-eclipse-temurin-8-noble`, `3-eclipse-temurin-8-noble`](https://github.com/carlossg/docker-maven/blob/999b218fb0188c75751755c9cb1aebedecb70351/eclipse-temurin-8-noble/Dockerfile) + +- [`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) + +- [`3.9.9-ibm-semeru-11-noble`, `3.9-ibm-semeru-11-noble`, `3-ibm-semeru-11-noble`](https://github.com/carlossg/docker-maven/blob/999b218fb0188c75751755c9cb1aebedecb70351/ibm-semeru-11-noble/Dockerfile) + +- [`3.9.9-ibm-semeru-17-noble`, `3.9-ibm-semeru-17-noble`, `3-ibm-semeru-17-noble`](https://github.com/carlossg/docker-maven/blob/999b218fb0188c75751755c9cb1aebedecb70351/ibm-semeru-17-noble/Dockerfile) + +- [`3.9.9-ibm-semeru-21-noble`, `3.9-ibm-semeru-21-noble`, `3-ibm-semeru-21-noble`](https://github.com/carlossg/docker-maven/blob/999b218fb0188c75751755c9cb1aebedecb70351/ibm-semeru-21-noble/Dockerfile) + +- [`3.9.9-amazoncorretto-11`, `3.9-amazoncorretto-11`, `3-amazoncorretto-11`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-11/Dockerfile) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`3.9.9-amazoncorretto-21`, `3.9-amazoncorretto-21`, `3-amazoncorretto-21`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-21/Dockerfile) + +- [`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) + +- [`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) + +- [`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) + +- [`3.9.9-amazoncorretto-24`, `3.9-amazoncorretto-24`, `3-amazoncorretto-24`](https://github.com/carlossg/docker-maven/blob/289ad67772f6dfad22c5362b863a29ec7373f501/amazoncorretto-24/Dockerfile) + +- [`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) + +- [`3.9.9-amazoncorretto-8`, `3.9-amazoncorretto-8`, `3-amazoncorretto-8`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-8/Dockerfile) + +- [`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) + +- [`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) + +- [`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) + +- [`3.9.9-sapmachine-11`, `3.9-sapmachine-11`, `3-sapmachine-11`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/sapmachine-11/Dockerfile) + +- [`3.9.9-sapmachine-17`, `3.9-sapmachine-17`, `3-sapmachine-17`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/sapmachine-17/Dockerfile) + +- [`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) + +- [`3.9.9-sapmachine-24`, `3.9-sapmachine-24`, `3-sapmachine-24`](https://github.com/carlossg/docker-maven/blob/289ad67772f6dfad22c5362b863a29ec7373f501/sapmachine-24/Dockerfile) # Quick reference (cont.) @@ -60,7 +112,7 @@ WARNING: [https://github.com/carlossg/docker-maven/issues](https://github.com/carlossg/docker-maven/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`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/), [`s390x`](https://hub.docker.com/r/s390x/maven/) + [`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/) - **Published image artifact details**: [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)) @@ -150,7 +202,7 @@ This is the defacto image. If you are unsure about what your needs are, you prob 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. -Some of these tags may have names like focal 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. +Some of these tags may have names like 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. ## `maven:-alpine` diff --git a/maven/metadata.json b/maven/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/maven/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/mediawiki/README.md b/mediawiki/README.md index 4418c01b809f..14aeb1cb1d87 100644 --- a/mediawiki/README.md +++ b/mediawiki/README.md @@ -24,15 +24,23 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.40.1`, `1.40`, `stable`, `latest`](https://github.com/wikimedia/mediawiki-docker/blob/fdf347f62615dad789d0e703fc2f6d628c43d4e1/1.40/apache/Dockerfile) -- [`1.40.1-fpm`, `1.40-fpm`, `stable-fpm`](https://github.com/wikimedia/mediawiki-docker/blob/fdf347f62615dad789d0e703fc2f6d628c43d4e1/1.40/fpm/Dockerfile) -- [`1.40.1-fpm-alpine`, `1.40-fpm-alpine`, `stable-fpm-alpine`](https://github.com/wikimedia/mediawiki-docker/blob/fdf347f62615dad789d0e703fc2f6d628c43d4e1/1.40/fpm-alpine/Dockerfile) -- [`1.39.5`, `1.39`, `lts`, `legacy`](https://github.com/wikimedia/mediawiki-docker/blob/fdf347f62615dad789d0e703fc2f6d628c43d4e1/1.39/apache/Dockerfile) -- [`1.39.5-fpm`, `1.39-fpm`, `legacy-fpm`, `lts-fpm`](https://github.com/wikimedia/mediawiki-docker/blob/fdf347f62615dad789d0e703fc2f6d628c43d4e1/1.39/fpm/Dockerfile) -- [`1.39.5-fpm-alpine`, `1.39-fpm-alpine`, `legacy-fpm-alpine`, `lts-fpm-alpine`](https://github.com/wikimedia/mediawiki-docker/blob/fdf347f62615dad789d0e703fc2f6d628c43d4e1/1.39/fpm-alpine/Dockerfile) -- [`1.35.13`, `1.35`, `legacylts`](https://github.com/wikimedia/mediawiki-docker/blob/fdf347f62615dad789d0e703fc2f6d628c43d4e1/1.35/apache/Dockerfile) -- [`1.35.13-fpm`, `1.35-fpm`, `legacylts-fpm`](https://github.com/wikimedia/mediawiki-docker/blob/fdf347f62615dad789d0e703fc2f6d628c43d4e1/1.35/fpm/Dockerfile) -- [`1.35.13-fpm-alpine`, `1.35-fpm-alpine`, `legacylts-fpm-alpine`](https://github.com/wikimedia/mediawiki-docker/blob/fdf347f62615dad789d0e703fc2f6d628c43d4e1/1.35/fpm-alpine/Dockerfile) +- [`1.43.1`, `1.43`, `latest`, `stable`, `lts`](https://github.com/wikimedia/mediawiki-docker/blob/76236dfa180c94c95410242a17d6dc8603ba3990/1.43/apache/Dockerfile) + +- [`1.43.1-fpm`, `1.43-fpm`, `stable-fpm`, `lts-fpm`](https://github.com/wikimedia/mediawiki-docker/blob/76236dfa180c94c95410242a17d6dc8603ba3990/1.43/fpm/Dockerfile) + +- [`1.43.1-fpm-alpine`, `1.43-fpm-alpine`, `stable-fpm-alpine`, `lts-fpm-alpine`](https://github.com/wikimedia/mediawiki-docker/blob/76236dfa180c94c95410242a17d6dc8603ba3990/1.43/fpm-alpine/Dockerfile) + +- [`1.42.6`, `1.42`, `legacy`](https://github.com/wikimedia/mediawiki-docker/blob/76236dfa180c94c95410242a17d6dc8603ba3990/1.42/apache/Dockerfile) + +- [`1.42.6-fpm`, `1.42-fpm`, `legacy-fpm`](https://github.com/wikimedia/mediawiki-docker/blob/76236dfa180c94c95410242a17d6dc8603ba3990/1.42/fpm/Dockerfile) + +- [`1.42.6-fpm-alpine`, `1.42-fpm-alpine`, `legacy-fpm-alpine`](https://github.com/wikimedia/mediawiki-docker/blob/76236dfa180c94c95410242a17d6dc8603ba3990/1.42/fpm-alpine/Dockerfile) + +- [`1.39.12`, `1.39`](https://github.com/wikimedia/mediawiki-docker/blob/76236dfa180c94c95410242a17d6dc8603ba3990/1.39/apache/Dockerfile) + +- [`1.39.12-fpm`, `1.39-fpm`](https://github.com/wikimedia/mediawiki-docker/blob/76236dfa180c94c95410242a17d6dc8603ba3990/1.39/fpm/Dockerfile) + +- [`1.39.12-fpm-alpine`, `1.39-fpm-alpine`](https://github.com/wikimedia/mediawiki-docker/blob/76236dfa180c94c95410242a17d6dc8603ba3990/1.39/fpm-alpine/Dockerfile) # Quick reference (cont.) @@ -101,16 +109,14 @@ The paths `/var/www/html/images` and `/var/www/html/LocalSettings.php` are thing $ docker run --rm mediawiki tar -cC /var/www/html/sites . | tar -xC /path/on/host/sites ``` -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `mediawiki`: +Example `compose.yaml` for `mediawiki`: ```yaml # MediaWiki with MariaDB # # Access via "http://localhost:8080/" -# (or "http://$(docker-machine ip):8080" if using docker-machine) -version: '3' services: mediawiki: image: mediawiki @@ -125,8 +131,7 @@ services: # this yaml and uncomment the following line and use compose to restart # the mediawiki service # - ./LocalSettings.php:/var/www/html/LocalSettings.php - # This key also defines the name of the database host used during setup instead of the default "localhost" - database: + database: # <- This key defines the name of the database during setup image: mariadb restart: always environment: @@ -143,9 +148,7 @@ volumes: db: ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/8fc63a1c6c985353af894baed5f7f4ae73c056f7/mediawiki/stack.yml) - -Run `docker stack deploy -c stack.yml mediawiki` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Adding additional libraries / extensions diff --git a/mediawiki/stack.yml b/mediawiki/compose.yaml similarity index 80% rename from mediawiki/stack.yml rename to mediawiki/compose.yaml index 3406c3b857d3..7df22965b1d2 100644 --- a/mediawiki/stack.yml +++ b/mediawiki/compose.yaml @@ -1,8 +1,6 @@ # MediaWiki with MariaDB # # Access via "http://localhost:8080/" -# (or "http://$(docker-machine ip):8080" if using docker-machine) -version: '3' services: mediawiki: image: mediawiki @@ -17,8 +15,7 @@ services: # this yaml and uncomment the following line and use compose to restart # the mediawiki service # - ./LocalSettings.php:/var/www/html/LocalSettings.php - # This key also defines the name of the database host used during setup instead of the default "localhost" - database: + database: # <- This key defines the name of the database during setup image: mariadb restart: always environment: diff --git a/mediawiki/content.md b/mediawiki/content.md index 7efe69a4edef..5242a25474b7 100644 --- a/mediawiki/content.md +++ b/mediawiki/content.md @@ -46,9 +46,9 @@ The paths `/var/www/html/images` and `/var/www/html/LocalSettings.php` are thing $ docker run --rm %%IMAGE%% tar -cC /var/www/html/sites . | tar -xC /path/on/host/sites ``` -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Adding additional libraries / extensions diff --git a/mediawiki/metadata.json b/mediawiki/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/mediawiki/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/memcached/README.md b/memcached/README.md index 85dc897459a6..9097db5672e4 100644 --- a/memcached/README.md +++ b/memcached/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.6.22`, `1.6`, `1`, `latest`, `1.6.22-bookworm`, `1.6-bookworm`, `1-bookworm`, `bookworm`](https://github.com/docker-library/memcached/blob/b8a7264e4fc952fd71f2fe325908d6ba06e8e061/debian/Dockerfile) -- [`1.6.22-alpine`, `1.6-alpine`, `1-alpine`, `alpine`, `1.6.22-alpine3.18`, `1.6-alpine3.18`, `1-alpine3.18`, `alpine3.18`](https://github.com/docker-library/memcached/blob/b8a7264e4fc952fd71f2fe325908d6ba06e8e061/alpine/Dockerfile) +- [`1.6.38`, `1.6`, `1`, `latest`, `1.6.38-bookworm`, `1.6-bookworm`, `1-bookworm`, `bookworm`](https://github.com/docker-library/memcached/blob/f8aa037f70e96f77b3797a2ead8fa0e5dcdec2c1/1/debian/Dockerfile) + +- [`1.6.38-alpine`, `1.6-alpine`, `1-alpine`, `alpine`, `1.6.38-alpine3.22`, `1.6-alpine3.22`, `1-alpine3.22`, `alpine3.22`](https://github.com/docker-library/memcached/blob/9d786e2bceabc841c7858127de29ad969454d9ac/1/alpine/Dockerfile) # Quick reference (cont.) @@ -33,7 +34,7 @@ WARNING: [https://github.com/docker-library/memcached/issues](https://github.com/docker-library/memcached/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/memcached/), [`arm32v5`](https://hub.docker.com/r/arm32v5/memcached/), [`arm32v7`](https://hub.docker.com/r/arm32v7/memcached/), [`arm64v8`](https://hub.docker.com/r/arm64v8/memcached/), [`i386`](https://hub.docker.com/r/i386/memcached/), [`mips64le`](https://hub.docker.com/r/mips64le/memcached/), [`ppc64le`](https://hub.docker.com/r/ppc64le/memcached/), [`s390x`](https://hub.docker.com/r/s390x/memcached/) + [`amd64`](https://hub.docker.com/r/amd64/memcached/), [`arm32v5`](https://hub.docker.com/r/arm32v5/memcached/), [`arm32v7`](https://hub.docker.com/r/arm32v7/memcached/), [`arm64v8`](https://hub.docker.com/r/arm64v8/memcached/), [`i386`](https://hub.docker.com/r/i386/memcached/), [`mips64le`](https://hub.docker.com/r/mips64le/memcached/), [`ppc64le`](https://hub.docker.com/r/ppc64le/memcached/), [`riscv64`](https://hub.docker.com/r/riscv64/memcached/), [`s390x`](https://hub.docker.com/r/s390x/memcached/) - **Published image artifact details**: [repo-info repo's `repos/memcached/` directory](https://github.com/docker-library/repo-info/blob/master/repos/memcached) ([history](https://github.com/docker-library/repo-info/commits/master/repos/memcached)) @@ -60,13 +61,31 @@ Memcached's APIs provide a very large hash table distributed across multiple mac $ docker run --name my-memcache -d memcached ``` -## Setting Memory Usage +### Configuration + +To customize the configuration of the memcached server, first obtain the upstream configuration options from the container: + +```console +$ docker run --rm memcached -h +``` + +Using `docker run`: ```console -$ docker run --name my-memcache -d memcached memcached -m 64 +$ docker run --name my-memcache -d memcached memcached --memory-limit=64 ``` -This would set the Memcached server to use 64 megabytes for storage. +or using Docker Compose: + +```yaml +services: + memcached: + image: memcached + command: + - --conn-limit=1024 + - --memory-limit=64 + - --threads=4 +``` For infomation on configuring your memcached server, see the extensive [wiki](https://github.com/memcached/memcached/wiki). diff --git a/memcached/content.md b/memcached/content.md index 6f13f6942d9d..ddabc4fc8e0e 100644 --- a/memcached/content.md +++ b/memcached/content.md @@ -12,12 +12,30 @@ Memcached's APIs provide a very large hash table distributed across multiple mac $ docker run --name my-memcache -d %%IMAGE%% ``` -## Setting Memory Usage +### Configuration + +To customize the configuration of the memcached server, first obtain the upstream configuration options from the container: ```console -$ docker run --name my-memcache -d %%IMAGE%% memcached -m 64 +$ docker run --rm %%IMAGE%% -h ``` -This would set the Memcached server to use 64 megabytes for storage. +Using `docker run`: + +```console +$ docker run --name my-memcache -d %%IMAGE%% memcached --memory-limit=64 +``` + +or using Docker Compose: + +```yaml +services: + memcached: + image: %%IMAGE%% + command: + - --conn-limit=1024 + - --memory-limit=64 + - --threads=4 +``` For infomation on configuring your memcached server, see the extensive [wiki](https://github.com/memcached/memcached/wiki). diff --git a/memcached/metadata.json b/memcached/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/memcached/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/metadata.json b/metadata.json new file mode 100644 index 000000000000..e12e4b04f598 --- /dev/null +++ b/metadata.json @@ -0,0 +1,22 @@ +{ + "hub": { + "categories": [ + "api-management", + "content-management-system", + "data-science", + "databases-and-storage", + "developer-tools", + "integration-and-delivery", + "internet-of-things", + "languages-and-frameworks", + "machine-learning-and-ai", + "message-queues", + "monitoring-and-observability", + "networking", + "operating-systems", + "security", + "web-analytics", + "web-servers" + ] + } +} diff --git a/metadata.sh b/metadata.sh new file mode 100755 index 000000000000..cc215de796f9 --- /dev/null +++ b/metadata.sh @@ -0,0 +1,118 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +workdir="$(readlink -f "$BASH_SOURCE")" +workdir="$(dirname "$workdir")" +cd "$workdir" + +jsonFile='metadata.json' +canonicalMetadataFile="./$jsonFile" +export maxCategories=3 + +self="$(basename "$0")" + +usage() { + cat <&2 && false; })" +eval set -- "$opts" + +write= + +while :; do + flag="$1" + shift + case "$flag" in + --help | -h) usage && exit 0 ;; + --write | -w) write=1 ;; + --) break ;; + *) + { + echo "error: unknown flag: $flag" + usage + } >&2 + exit 1 + ;; + esac +done + +repos=( "$@" ) +if [ "${#repos[@]}" -eq 0 ]; then + repos=( */ ) +fi +repos=( "${repos[@]%/}" ) + +failures=0 +for repo in "${repos[@]}"; do + repoFile="$repo/$jsonFile" + if [ ! -s "$repoFile" ]; then + echo >&2 "error: $repoFile does not exist or is empty" + (( failures++ )) || : + continue + fi + + # sort object keys and pretty print with jq as our "cannonical json" + # sort categories array, no duplicates + if ! repoFileJson="$(jq -s --sort-keys '.[0] | .hub.categories |= unique' "$repoFile")"; then + echo >&2 "error parsing '$repoFile'; invalid JSON?" + (( failures++ )) || : + continue + fi + if ! filediff="$(diff -u "$repoFile" <(cat <<<"$repoFileJson"))"; then + cat <<<"$filediff" + if [ -n "$write" ]; then + cat <<<"$repoFileJson" > "$repoFile" + else + (( failures++ )) || : + fi + fi + + # TODO also check for required keys and/or types? + # the canonicalMetadataFile doesn't have too many categories since it is the source of categories + # all other metadata.json files must not be more than maxCategories or have categories that aren't in the canonical set + if [ "$repoFile" != "$canonicalMetadataFile" ]; then + export repoFile + if errorText="$(jq -r --slurpfile canonical "$canonicalMetadataFile" ' + .hub.categories + | ( + length + | if . > (env.maxCategories | tonumber) then + "error: \(env.repoFile): too many categories: \(.) (max \(env.maxCategories))" + else empty end + ), + ( + . - $canonical[0].hub.categories + | if length > 0 then + "error: \(env.repoFile): unknown categories \(.)" + else empty end + ) + ' "$repoFile")"; then + if [ -n "$errorText" ]; then + echo >&2 "$errorText" + (( failures++ )) || : + fi + else + echo >&2 "error parsing '$repoFile'; invalid JSON?" + (( failures++ )) || : + continue + fi + fi +done + +exit "$failures" diff --git a/mongo-express/README.md b/mongo-express/README.md index abdc637dd9f1..622247c1f1c4 100644 --- a/mongo-express/README.md +++ b/mongo-express/README.md @@ -24,10 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.0.0-20-alpine3.18`, `1.0-20-alpine3.18`, `1-20-alpine3.18`](https://github.com/mongo-express/mongo-express-docker/blob/5fb537b2fd181e458f58137fdb55d061a8c23da5/1.0/20-alpine3.18/Dockerfile) -- [`1.0.0-20`, `1.0-20`, `1-20`, `1.0.0-20-alpine3.17`, `1.0-20-alpine3.17`, `1-20-alpine3.17`](https://github.com/mongo-express/mongo-express-docker/blob/5fb537b2fd181e458f58137fdb55d061a8c23da5/1.0/20-alpine3.17/Dockerfile) -- [`1.0.0-18-alpine3.18`, `1.0-18-alpine3.18`, `1-18-alpine3.18`](https://github.com/mongo-express/mongo-express-docker/blob/5fb537b2fd181e458f58137fdb55d061a8c23da5/1.0/18-alpine3.18/Dockerfile) -- [`1.0.0`, `1.0`, `1`, `1.0.0-18`, `1.0-18`, `1-18`, `1.0.0-18-alpine3.17`, `1.0-18-alpine3.17`, `1-18-alpine3.17`, `latest`](https://github.com/mongo-express/mongo-express-docker/blob/5fb537b2fd181e458f58137fdb55d061a8c23da5/1.0/18-alpine3.17/Dockerfile) +**No supported tags** # Quick reference (cont.) @@ -35,7 +32,7 @@ WARNING: [https://github.com/mongo-express/mongo-express-docker/issues](https://github.com/mongo-express/mongo-express-docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/mongo-express/), [`arm64v8`](https://hub.docker.com/r/arm64v8/mongo-express/) + **No supported architectures** - **Published image artifact details**: [repo-info repo's `repos/mongo-express/` directory](https://github.com/docker-library/repo-info/blob/master/repos/mongo-express) ([history](https://github.com/docker-library/repo-info/commits/master/repos/mongo-express)) @@ -114,7 +111,7 @@ $ docker run -it --rm \ mongo-express ``` -This example links to a container name typical of `docker-compose`, changes the editor's color theme, and enables basic authentication. +This example links to a container name typical of `docker compose`, changes the editor's color theme, and enables basic authentication. # License diff --git a/mongo-express/content.md b/mongo-express/content.md index 13b6df497b75..566d512a74c9 100644 --- a/mongo-express/content.md +++ b/mongo-express/content.md @@ -64,4 +64,4 @@ $ docker run -it --rm \ %%IMAGE%% ``` -This example links to a container name typical of `docker-compose`, changes the editor's color theme, and enables basic authentication. +This example links to a container name typical of `docker compose`, changes the editor's color theme, and enables basic authentication. diff --git a/mongo-express/metadata.json b/mongo-express/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/mongo-express/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/mongo/README.md b/mongo/README.md index 03224a31968c..ac9f94f666a1 100644 --- a/mongo/README.md +++ b/mongo/README.md @@ -28,129 +28,76 @@ WARNING: ## Simple Tags -- [`7.0.4-rc0-jammy`, `7.0-rc-jammy`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/Dockerfile) -- [`7.0.4-rc0-windowsservercore-ltsc2022`, `7.0-rc-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/windowsservercore-ltsc2022/Dockerfile) -- [`7.0.4-rc0-windowsservercore-1809`, `7.0-rc-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/windowsservercore-1809/Dockerfile) -- [`7.0.4-rc0-nanoserver-ltsc2022`, `7.0-rc-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/nanoserver-ltsc2022/Dockerfile) -- [`7.0.4-rc0-nanoserver-1809`, `7.0-rc-nanoserver-1809`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/nanoserver-1809/Dockerfile) -- [`7.0.3-jammy`, `7.0-jammy`, `7-jammy`, `jammy`](https://github.com/docker-library/mongo/blob/5f4f4b4f592b6f579ff12c0c88410806e82803fb/7.0/Dockerfile) -- [`7.0.3-windowsservercore-ltsc2022`, `7.0-windowsservercore-ltsc2022`, `7-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/0c134bded978e5d3ea1d12531eaaaba332cc9059/7.0/windows/windowsservercore-ltsc2022/Dockerfile) -- [`7.0.3-windowsservercore-1809`, `7.0-windowsservercore-1809`, `7-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/docker-library/mongo/blob/0c134bded978e5d3ea1d12531eaaaba332cc9059/7.0/windows/windowsservercore-1809/Dockerfile) -- [`7.0.3-nanoserver-ltsc2022`, `7.0-nanoserver-ltsc2022`, `7-nanoserver-ltsc2022`, `nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/5f4f4b4f592b6f579ff12c0c88410806e82803fb/7.0/windows/nanoserver-ltsc2022/Dockerfile) -- [`7.0.3-nanoserver-1809`, `7.0-nanoserver-1809`, `7-nanoserver-1809`, `nanoserver-1809`](https://github.com/docker-library/mongo/blob/5f4f4b4f592b6f579ff12c0c88410806e82803fb/7.0/windows/nanoserver-1809/Dockerfile) -- [`6.0.12-rc1-jammy`, `6.0-rc-jammy`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/Dockerfile) -- [`6.0.12-rc1-windowsservercore-ltsc2022`, `6.0-rc-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/windowsservercore-ltsc2022/Dockerfile) -- [`6.0.12-rc1-windowsservercore-1809`, `6.0-rc-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/windowsservercore-1809/Dockerfile) -- [`6.0.12-rc1-nanoserver-ltsc2022`, `6.0-rc-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/nanoserver-ltsc2022/Dockerfile) -- [`6.0.12-rc1-nanoserver-1809`, `6.0-rc-nanoserver-1809`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/nanoserver-1809/Dockerfile) -- [`6.0.11-jammy`, `6.0-jammy`, `6-jammy`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/Dockerfile) -- [`6.0.11-windowsservercore-ltsc2022`, `6.0-windowsservercore-ltsc2022`, `6-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/windowsservercore-ltsc2022/Dockerfile) -- [`6.0.11-windowsservercore-1809`, `6.0-windowsservercore-1809`, `6-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/windowsservercore-1809/Dockerfile) -- [`6.0.11-nanoserver-ltsc2022`, `6.0-nanoserver-ltsc2022`, `6-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/nanoserver-ltsc2022/Dockerfile) -- [`6.0.11-nanoserver-1809`, `6.0-nanoserver-1809`, `6-nanoserver-1809`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/nanoserver-1809/Dockerfile) -- [`5.0.23-rc0-focal`, `5.0-rc-focal`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/Dockerfile) -- [`5.0.23-rc0-windowsservercore-ltsc2022`, `5.0-rc-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/windowsservercore-ltsc2022/Dockerfile) -- [`5.0.23-rc0-windowsservercore-1809`, `5.0-rc-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/windowsservercore-1809/Dockerfile) -- [`5.0.23-rc0-nanoserver-ltsc2022`, `5.0-rc-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/nanoserver-ltsc2022/Dockerfile) -- [`5.0.23-rc0-nanoserver-1809`, `5.0-rc-nanoserver-1809`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/nanoserver-1809/Dockerfile) -- [`5.0.22-focal`, `5.0-focal`, `5-focal`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/Dockerfile) -- [`5.0.22-windowsservercore-ltsc2022`, `5.0-windowsservercore-ltsc2022`, `5-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/windowsservercore-ltsc2022/Dockerfile) -- [`5.0.22-windowsservercore-1809`, `5.0-windowsservercore-1809`, `5-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/windowsservercore-1809/Dockerfile) -- [`5.0.22-nanoserver-ltsc2022`, `5.0-nanoserver-ltsc2022`, `5-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/nanoserver-ltsc2022/Dockerfile) -- [`5.0.22-nanoserver-1809`, `5.0-nanoserver-1809`, `5-nanoserver-1809`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/nanoserver-1809/Dockerfile) -- [`4.4.26-rc0-focal`, `4.4-rc-focal`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/Dockerfile) -- [`4.4.26-rc0-windowsservercore-ltsc2022`, `4.4-rc-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/windowsservercore-ltsc2022/Dockerfile) -- [`4.4.26-rc0-windowsservercore-1809`, `4.4-rc-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/windowsservercore-1809/Dockerfile) -- [`4.4.26-rc0-nanoserver-ltsc2022`, `4.4-rc-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/nanoserver-ltsc2022/Dockerfile) -- [`4.4.26-rc0-nanoserver-1809`, `4.4-rc-nanoserver-1809`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/nanoserver-1809/Dockerfile) -- [`4.4.25-focal`, `4.4-focal`, `4-focal`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/Dockerfile) -- [`4.4.25-windowsservercore-ltsc2022`, `4.4-windowsservercore-ltsc2022`, `4-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/windowsservercore-ltsc2022/Dockerfile) -- [`4.4.25-windowsservercore-1809`, `4.4-windowsservercore-1809`, `4-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/windowsservercore-1809/Dockerfile) -- [`4.4.25-nanoserver-ltsc2022`, `4.4-nanoserver-ltsc2022`, `4-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/nanoserver-ltsc2022/Dockerfile) -- [`4.4.25-nanoserver-1809`, `4.4-nanoserver-1809`, `4-nanoserver-1809`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/nanoserver-1809/Dockerfile) +- [`8.0.10-noble`, `8.0-noble`, `8-noble`, `noble`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/Dockerfile) + +- [`8.0.10-windowsservercore-ltsc2025`, `8.0-windowsservercore-ltsc2025`, `8-windowsservercore-ltsc2025`, `windowsservercore-ltsc2025`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`8.0.10-windowsservercore-ltsc2022`, `8.0-windowsservercore-ltsc2022`, `8-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`8.0.10-nanoserver-ltsc2022`, `8.0-nanoserver-ltsc2022`, `8-nanoserver-ltsc2022`, `nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/windows/nanoserver-ltsc2022/Dockerfile) + +- [`7.0.21-jammy`, `7.0-jammy`, `7-jammy`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/Dockerfile) + +- [`7.0.21-windowsservercore-ltsc2025`, `7.0-windowsservercore-ltsc2025`, `7-windowsservercore-ltsc2025`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`7.0.21-windowsservercore-ltsc2022`, `7.0-windowsservercore-ltsc2022`, `7-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`7.0.21-nanoserver-ltsc2022`, `7.0-nanoserver-ltsc2022`, `7-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/windows/nanoserver-ltsc2022/Dockerfile) + +- [`6.0.24-jammy`, `6.0-jammy`, `6-jammy`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/Dockerfile) + +- [`6.0.24-windowsservercore-ltsc2025`, `6.0-windowsservercore-ltsc2025`, `6-windowsservercore-ltsc2025`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`6.0.24-windowsservercore-ltsc2022`, `6.0-windowsservercore-ltsc2022`, `6-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`6.0.24-nanoserver-ltsc2022`, `6.0-nanoserver-ltsc2022`, `6-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/windows/nanoserver-ltsc2022/Dockerfile) ## Shared Tags -- `7.0.4-rc0`, `7.0-rc`: - - [`7.0.4-rc0-jammy`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/Dockerfile) - - [`7.0.4-rc0-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`7.0.4-rc0-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/windowsservercore-1809/Dockerfile) -- `7.0.4-rc0-windowsservercore`, `7.0-rc-windowsservercore`: - - [`7.0.4-rc0-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`7.0.4-rc0-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/windowsservercore-1809/Dockerfile) -- `7.0.4-rc0-nanoserver`, `7.0-rc-nanoserver`: - - [`7.0.4-rc0-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/nanoserver-ltsc2022/Dockerfile) - - [`7.0.4-rc0-nanoserver-1809`](https://github.com/docker-library/mongo/blob/e9348af9dd350803993bafcad138ab319282b385/7.0-rc/windows/nanoserver-1809/Dockerfile) -- `7.0.3`, `7.0`, `7`, `latest`: - - [`7.0.3-jammy`](https://github.com/docker-library/mongo/blob/5f4f4b4f592b6f579ff12c0c88410806e82803fb/7.0/Dockerfile) - - [`7.0.3-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/0c134bded978e5d3ea1d12531eaaaba332cc9059/7.0/windows/windowsservercore-ltsc2022/Dockerfile) - - [`7.0.3-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/0c134bded978e5d3ea1d12531eaaaba332cc9059/7.0/windows/windowsservercore-1809/Dockerfile) -- `7.0.3-windowsservercore`, `7.0-windowsservercore`, `7-windowsservercore`, `windowsservercore`: - - [`7.0.3-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/0c134bded978e5d3ea1d12531eaaaba332cc9059/7.0/windows/windowsservercore-ltsc2022/Dockerfile) - - [`7.0.3-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/0c134bded978e5d3ea1d12531eaaaba332cc9059/7.0/windows/windowsservercore-1809/Dockerfile) -- `7.0.3-nanoserver`, `7.0-nanoserver`, `7-nanoserver`, `nanoserver`: - - [`7.0.3-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/5f4f4b4f592b6f579ff12c0c88410806e82803fb/7.0/windows/nanoserver-ltsc2022/Dockerfile) - - [`7.0.3-nanoserver-1809`](https://github.com/docker-library/mongo/blob/5f4f4b4f592b6f579ff12c0c88410806e82803fb/7.0/windows/nanoserver-1809/Dockerfile) -- `6.0.12-rc1`, `6.0-rc`: - - [`6.0.12-rc1-jammy`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/Dockerfile) - - [`6.0.12-rc1-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`6.0.12-rc1-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/windowsservercore-1809/Dockerfile) -- `6.0.12-rc1-windowsservercore`, `6.0-rc-windowsservercore`: - - [`6.0.12-rc1-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`6.0.12-rc1-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/windowsservercore-1809/Dockerfile) -- `6.0.12-rc1-nanoserver`, `6.0-rc-nanoserver`: - - [`6.0.12-rc1-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/nanoserver-ltsc2022/Dockerfile) - - [`6.0.12-rc1-nanoserver-1809`](https://github.com/docker-library/mongo/blob/219836a5ced0f750c2b74e35c989c396ceab7c7a/6.0-rc/windows/nanoserver-1809/Dockerfile) -- `6.0.11`, `6.0`, `6`: - - [`6.0.11-jammy`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/Dockerfile) - - [`6.0.11-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/windowsservercore-ltsc2022/Dockerfile) - - [`6.0.11-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/windowsservercore-1809/Dockerfile) -- `6.0.11-windowsservercore`, `6.0-windowsservercore`, `6-windowsservercore`: - - [`6.0.11-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/windowsservercore-ltsc2022/Dockerfile) - - [`6.0.11-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/windowsservercore-1809/Dockerfile) -- `6.0.11-nanoserver`, `6.0-nanoserver`, `6-nanoserver`: - - [`6.0.11-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/nanoserver-ltsc2022/Dockerfile) - - [`6.0.11-nanoserver-1809`](https://github.com/docker-library/mongo/blob/862e9ee0ed0297367b13529a6712be7ed180f753/6.0/windows/nanoserver-1809/Dockerfile) -- `5.0.23-rc0`, `5.0-rc`: - - [`5.0.23-rc0-focal`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/Dockerfile) - - [`5.0.23-rc0-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`5.0.23-rc0-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/windowsservercore-1809/Dockerfile) -- `5.0.23-rc0-windowsservercore`, `5.0-rc-windowsservercore`: - - [`5.0.23-rc0-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`5.0.23-rc0-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/windowsservercore-1809/Dockerfile) -- `5.0.23-rc0-nanoserver`, `5.0-rc-nanoserver`: - - [`5.0.23-rc0-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/nanoserver-ltsc2022/Dockerfile) - - [`5.0.23-rc0-nanoserver-1809`](https://github.com/docker-library/mongo/blob/ec399f16936d8c4647acf0156c27ae7d4c6afef2/5.0-rc/windows/nanoserver-1809/Dockerfile) -- `5.0.22`, `5.0`, `5`: - - [`5.0.22-focal`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/Dockerfile) - - [`5.0.22-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/windowsservercore-ltsc2022/Dockerfile) - - [`5.0.22-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/windowsservercore-1809/Dockerfile) -- `5.0.22-windowsservercore`, `5.0-windowsservercore`, `5-windowsservercore`: - - [`5.0.22-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/windowsservercore-ltsc2022/Dockerfile) - - [`5.0.22-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/windowsservercore-1809/Dockerfile) -- `5.0.22-nanoserver`, `5.0-nanoserver`, `5-nanoserver`: - - [`5.0.22-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/nanoserver-ltsc2022/Dockerfile) - - [`5.0.22-nanoserver-1809`](https://github.com/docker-library/mongo/blob/82e3350a09ca356ffb0bc9b86e0c571730d1ff5e/5.0/windows/nanoserver-1809/Dockerfile) -- `4.4.26-rc0`, `4.4-rc`: - - [`4.4.26-rc0-focal`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/Dockerfile) - - [`4.4.26-rc0-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`4.4.26-rc0-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/windowsservercore-1809/Dockerfile) -- `4.4.26-rc0-windowsservercore`, `4.4-rc-windowsservercore`: - - [`4.4.26-rc0-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`4.4.26-rc0-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/windowsservercore-1809/Dockerfile) -- `4.4.26-rc0-nanoserver`, `4.4-rc-nanoserver`: - - [`4.4.26-rc0-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/nanoserver-ltsc2022/Dockerfile) - - [`4.4.26-rc0-nanoserver-1809`](https://github.com/docker-library/mongo/blob/97302d37e8b7f669a3fcc652b769410db98c7c37/4.4-rc/windows/nanoserver-1809/Dockerfile) -- `4.4.25`, `4.4`, `4`: - - [`4.4.25-focal`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/Dockerfile) - - [`4.4.25-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/windowsservercore-ltsc2022/Dockerfile) - - [`4.4.25-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/windowsservercore-1809/Dockerfile) -- `4.4.25-windowsservercore`, `4.4-windowsservercore`, `4-windowsservercore`: - - [`4.4.25-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/windowsservercore-ltsc2022/Dockerfile) - - [`4.4.25-windowsservercore-1809`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/windowsservercore-1809/Dockerfile) -- `4.4.25-nanoserver`, `4.4-nanoserver`, `4-nanoserver`: - - [`4.4.25-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/nanoserver-ltsc2022/Dockerfile) - - [`4.4.25-nanoserver-1809`](https://github.com/docker-library/mongo/blob/66197d92be6eafc0a36b2570172de0a5f7a905e1/4.4/windows/nanoserver-1809/Dockerfile) +- `8.0.10`, `8.0`, `8`, `latest`: + + - [`8.0.10-noble`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/Dockerfile) + - [`8.0.10-windowsservercore-ltsc2025`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/windows/windowsservercore-ltsc2025/Dockerfile) + - [`8.0.10-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/windows/windowsservercore-ltsc2022/Dockerfile) + +- `8.0.10-windowsservercore`, `8.0-windowsservercore`, `8-windowsservercore`, `windowsservercore`: + + - [`8.0.10-windowsservercore-ltsc2025`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/windows/windowsservercore-ltsc2025/Dockerfile) + - [`8.0.10-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/windows/windowsservercore-ltsc2022/Dockerfile) + +- `8.0.10-nanoserver`, `8.0-nanoserver`, `8-nanoserver`, `nanoserver`: + + - [`8.0.10-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/f8081e0e624789f709b6d7e1c5591962bebc059e/8.0/windows/nanoserver-ltsc2022/Dockerfile) + +- `7.0.21`, `7.0`, `7`: + + - [`7.0.21-jammy`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/Dockerfile) + - [`7.0.21-windowsservercore-ltsc2025`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/windows/windowsservercore-ltsc2025/Dockerfile) + - [`7.0.21-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/windows/windowsservercore-ltsc2022/Dockerfile) + +- `7.0.21-windowsservercore`, `7.0-windowsservercore`, `7-windowsservercore`: + + - [`7.0.21-windowsservercore-ltsc2025`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/windows/windowsservercore-ltsc2025/Dockerfile) + - [`7.0.21-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/windows/windowsservercore-ltsc2022/Dockerfile) + +- `7.0.21-nanoserver`, `7.0-nanoserver`, `7-nanoserver`: + + - [`7.0.21-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/c7bd702215414e981801b521109a05b859506167/7.0/windows/nanoserver-ltsc2022/Dockerfile) + +- `6.0.24`, `6.0`, `6`: + + - [`6.0.24-jammy`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/Dockerfile) + - [`6.0.24-windowsservercore-ltsc2025`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/windows/windowsservercore-ltsc2025/Dockerfile) + - [`6.0.24-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/windows/windowsservercore-ltsc2022/Dockerfile) + +- `6.0.24-windowsservercore`, `6.0-windowsservercore`, `6-windowsservercore`: + + - [`6.0.24-windowsservercore-ltsc2025`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/windows/windowsservercore-ltsc2025/Dockerfile) + - [`6.0.24-windowsservercore-ltsc2022`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/windows/windowsservercore-ltsc2022/Dockerfile) + +- `6.0.24-nanoserver`, `6.0-nanoserver`, `6-nanoserver`: + + - [`6.0.24-nanoserver-ltsc2022`](https://github.com/docker-library/mongo/blob/562f49de7c6f7fc87bce26a51ab4806806c6de79/6.0/windows/nanoserver-ltsc2022/Dockerfile) # Quick reference (cont.) @@ -181,6 +128,10 @@ First developed by the software company 10gen (now MongoDB Inc.) in October 2007 +# Security + +By default Mongo's configuration requires no authentication for access, even for the administrative user. It is highly recommended to set a root user name and password if you plan on exposing your Mongo instance to the internet. See the "`MONGO_INITDB_ROOT_USERNAME`, `MONGO_INITDB_ROOT_PASSWORD`" section below for instructions and the [MongoDB Security documentation](https://www.mongodb.com/docs/manual/security/) for a more complete treatment. + # How to use this image ## Start a `mongo` server instance @@ -201,13 +152,12 @@ $ docker run -it --network some-network --rm mongo mongosh --host some-mongo tes ... where `some-mongo` is the name of your original `mongo` container. -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `mongo`: +Example `compose.yaml` for `mongo`: ```yaml # Use root/example as user/password credentials -version: '3.1' services: @@ -227,11 +177,10 @@ services: ME_CONFIG_MONGODB_ADMINUSERNAME: root ME_CONFIG_MONGODB_ADMINPASSWORD: example ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/ + ME_CONFIG_BASICAUTH: false ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/f6c9b596064e2eed9c3b6ac75bea606cb6d94099/mongo/stack.yml) - -Run `docker stack deploy -c stack.yml mongo` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8081`, `http://localhost:8081`, or `http://host-ip:8081` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8081` or `http://host-ip:8081` (as appropriate). ## Container shell access and viewing MongoDB logs @@ -247,7 +196,7 @@ The MongoDB Server log is available through Docker's container log: $ docker logs some-mongo ``` -## Configuration +# Configuration See the [MongoDB manual](https://docs.mongodb.com/manual/) for information on using and configuring MongoDB for things like replica sets and sharding. @@ -259,10 +208,9 @@ Most MongoDB configuration can be set through flags to `mongod`. The entrypoint $ docker run --name some-mongo -d mongo --serviceExecutor adaptive ``` -And here is the same with a `docker-compose.yml` file +And here is the same with a `compose.yaml` file ```yaml -version: '3.1' services: mongo: image: mongo @@ -363,8 +311,8 @@ In addition to the `/docker-entrypoint-initdb.d` behavior documented above (whic Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `mongo` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. **WARNING (Windows & OS X)**: When running the Linux-based MongoDB images on Windows and OS X, the file systems used to share between the host system and the Docker container is not compatible with the memory mapped files used by MongoDB ([docs.mongodb.org](https://docs.mongodb.com/manual/administration/production-notes/#fsync---on-directories) and related [jira.mongodb.org](https://jira.mongodb.org/browse/SERVER-8600) bug). This means that it is not possible to run a MongoDB container with the data directory mapped to the host. To persist data between container restarts, we recommend using a local named volume instead (see `docker volume create`). Alternatively you can use the Windows-based images on Windows. @@ -397,7 +345,7 @@ The `mongo` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like focal or jammy 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. +Some of these tags may have names like 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. ## `mongo:-windowsservercore` diff --git a/mongo/stack.yml b/mongo/compose.yaml similarity index 93% rename from mongo/stack.yml rename to mongo/compose.yaml index 7a287967fc60..a49a3d6ff44f 100644 --- a/mongo/stack.yml +++ b/mongo/compose.yaml @@ -1,5 +1,4 @@ # Use root/example as user/password credentials -version: '3.1' services: @@ -19,3 +18,4 @@ services: ME_CONFIG_MONGODB_ADMINUSERNAME: root ME_CONFIG_MONGODB_ADMINPASSWORD: example ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/ + ME_CONFIG_BASICAUTH: false diff --git a/mongo/content.md b/mongo/content.md index c586238bd8ee..0bec7ae13aed 100644 --- a/mongo/content.md +++ b/mongo/content.md @@ -8,6 +8,10 @@ First developed by the software company 10gen (now MongoDB Inc.) in October 2007 %%LOGO%% +# Security + +By default Mongo's configuration requires no authentication for access, even for the administrative user. It is highly recommended to set a root user name and password if you plan on exposing your Mongo instance to the internet. See the "`MONGO_INITDB_ROOT_USERNAME`, `MONGO_INITDB_ROOT_PASSWORD`" section below for instructions and the [MongoDB Security documentation](https://www.mongodb.com/docs/manual/security/) for a more complete treatment. + # How to use this image ## Start a `%%REPO%%` server instance @@ -28,9 +32,9 @@ $ docker run -it --network some-network --rm %%IMAGE%% mongosh --host some-%%REP ... where `some-%%REPO%%` is the name of your original `mongo` container. -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8081`, `http://localhost:8081`, or `http://host-ip:8081` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8081` or `http://host-ip:8081` (as appropriate). ## Container shell access and viewing MongoDB logs @@ -46,7 +50,7 @@ The MongoDB Server log is available through Docker's container log: $ docker logs some-%%REPO%% ``` -## Configuration +# Configuration See the [MongoDB manual](https://docs.mongodb.com/manual/) for information on using and configuring MongoDB for things like replica sets and sharding. @@ -58,10 +62,9 @@ Most MongoDB configuration can be set through flags to `mongod`. The entrypoint $ docker run --name some-%%REPO%% -d %%IMAGE%% --serviceExecutor adaptive ``` -And here is the same with a `docker-compose.yml` file +And here is the same with a `compose.yaml` file ```yaml -version: '3.1' services: mongo: image: %%IMAGE%% @@ -162,8 +165,8 @@ In addition to the `/docker-entrypoint-initdb.d` behavior documented above (whic Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `%%REPO%%` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. **WARNING (Windows & OS X)**: When running the Linux-based MongoDB images on Windows and OS X, the file systems used to share between the host system and the Docker container is not compatible with the memory mapped files used by MongoDB ([docs.mongodb.org](https://docs.mongodb.com/manual/administration/production-notes/#fsync---on-directories) and related [jira.mongodb.org](https://jira.mongodb.org/browse/SERVER-8600) bug). This means that it is not possible to run a MongoDB container with the data directory mapped to the host. To persist data between container restarts, we recommend using a local named volume instead (see `docker volume create`). Alternatively you can use the Windows-based images on Windows. diff --git a/mongo/metadata.json b/mongo/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/mongo/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/monica/README.md b/monica/README.md index 775bb0620bf4..65ebbdfee8f5 100644 --- a/monica/README.md +++ b/monica/README.md @@ -24,9 +24,17 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`4.0.0-apache`, `4.0-apache`, `4-apache`, `apache`, `4.0.0`, `4.0`, `4`, `latest`](https://github.com/monicahq/docker/blob/96189780c639d1511691a3151dd4d90d2f757ee3/4/apache/Dockerfile) -- [`4.0.0-fpm`, `4.0-fpm`, `4-fpm`, `fpm`](https://github.com/monicahq/docker/blob/96189780c639d1511691a3151dd4d90d2f757ee3/4/fpm/Dockerfile) -- [`4.0.0-fpm-alpine`, `4.0-fpm-alpine`, `4-fpm-alpine`, `fpm-alpine`](https://github.com/monicahq/docker/blob/96189780c639d1511691a3151dd4d90d2f757ee3/4/fpm-alpine/Dockerfile) +- [`4.1.2-apache`, `4.1-apache`, `4-apache`, `apache`, `4.1.2`, `4.1`, `4`, `latest`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/4/apache/Dockerfile) + +- [`4.1.2-fpm-alpine`, `4.1-fpm-alpine`, `4-fpm-alpine`, `fpm-alpine`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/4/fpm-alpine/Dockerfile) + +- [`4.1.2-fpm`, `4.1-fpm`, `4-fpm`, `fpm`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/4/fpm/Dockerfile) + +- [`5.0.0-beta.5-apache`, `5.0.0-beta-apache`, `5.0-apache`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/5/apache/Dockerfile) + +- [`5.0.0-beta.5-fpm-alpine`, `5.0.0-beta-fpm-alpine`, `5.0-fpm-alpine`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/5/fpm-alpine/Dockerfile) + +- [`5.0.0-beta.5-fpm`, `5.0.0-beta-fpm`, `5.0-fpm`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/5/fpm/Dockerfile) # Quick reference (cont.) @@ -34,7 +42,7 @@ WARNING: [https://github.com/monicahq/docker/issues](https://github.com/monicahq/docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/monica/), [`arm32v5`](https://hub.docker.com/r/arm32v5/monica/), [`arm32v6`](https://hub.docker.com/r/arm32v6/monica/), [`arm32v7`](https://hub.docker.com/r/arm32v7/monica/), [`arm64v8`](https://hub.docker.com/r/arm64v8/monica/), [`i386`](https://hub.docker.com/r/i386/monica/), [`mips64le`](https://hub.docker.com/r/mips64le/monica/), [`ppc64le`](https://hub.docker.com/r/ppc64le/monica/), [`s390x`](https://hub.docker.com/r/s390x/monica/) + [`amd64`](https://hub.docker.com/r/amd64/monica/), [`arm32v5`](https://hub.docker.com/r/arm32v5/monica/), [`arm32v6`](https://hub.docker.com/r/arm32v6/monica/), [`arm32v7`](https://hub.docker.com/r/arm32v7/monica/), [`arm64v8`](https://hub.docker.com/r/arm64v8/monica/), [`i386`](https://hub.docker.com/r/i386/monica/), [`mips64le`](https://hub.docker.com/r/mips64le/monica/), [`ppc64le`](https://hub.docker.com/r/ppc64le/monica/), [`riscv64`](https://hub.docker.com/r/riscv64/monica/), [`s390x`](https://hub.docker.com/r/s390x/monica/) - **Published image artifact details**: [repo-info repo's `repos/monica/` directory](https://github.com/docker-library/repo-info/blob/master/repos/monica) ([history](https://github.com/docker-library/repo-info/commits/master/repos/monica)) @@ -79,7 +87,7 @@ docker run --name some-monica -d -p 9000:9000 monica:fpm ### Using an external database -You'll need to setup an external database. Monica currently support MySQL/MariaDB database. You can also link a database container, e. g. `--link my-mysql:db`, and then use `db` as the database host on setup. More info is in the docker-compose section. +You'll need to setup an external database. Monica currently support MySQL/MariaDB database. You can also link a database container, e. g. `--link my-mysql:db`, and then use `db` as the database host on setup. More info is in the Docker Compose section. ### Persistent data storage @@ -101,21 +109,21 @@ Like every Laravel application, the `php artisan` command is very usefull for Mo docker exec CONTAINER_ID php artisan COMMAND ``` -or for docker-compose +Or for Docker Compose: ```console -docker-compose exec monica php artisan COMMAND +docker compose exec monica php artisan COMMAND ``` -where `monica` is the name of the service in your `docker-compose.yml` file. +where `monica` is the name of the service in your `compose.yaml` file. ## Configuration using environment variables The Monica image will use environment variables to setup the application. See [Monica documentation](https://github.com/monicahq/monica/blob/4.x/.env.example) for common used variables you should setup. -## Running the image with docker-compose +## Running the image with Docker Compose -See some examples of docker-compose possibilities in the [example section](https://github.com/monicahq/docker/blob/main/.examples). +See some examples of Docker Compose possibilities in the [example section](https://github.com/monicahq/docker/blob/main/.examples). --- @@ -125,11 +133,9 @@ This version will use the apache image and add a mysql container. The volumes ar Make sure to pass in values for `APP_KEY` variable before you run this setup. -1. Create a `docker-compose.yml` file +1. Create a `compose.yaml` file ```yaml - version: "3.9" - services: app: image: monica @@ -169,7 +175,7 @@ Make sure to pass in values for `APP_KEY` variable before you run this setup. 3. Run ```console - docker-compose up -d + docker compose up -d ``` Wait until all migrations are done and then access Monica at http://localhost:8080/ from your host system. If this looks ok, add your first user account. @@ -177,7 +183,7 @@ Make sure to pass in values for `APP_KEY` variable before you run this setup. 4. Run this command once: ```console - docker-compose exec app php artisan setup:production + docker compose exec app php artisan setup:production ``` ### FPM version @@ -192,13 +198,11 @@ When using FPM image, you will need another container with a webserver to proxy curl -sSL https://raw.githubusercontent.com/monicahq/docker/main/.examples/full/web/Dockerfile -o web/Dockerfile ``` - The `web` container image should be pre-build before each deploy with: `docker-compose build`. + The `web` container image should be pre-build before each deploy with: `docker compose build`. -2. Create a `docker-compose.yml` file +2. Create a `compose.yaml` file ```yaml - version: "3.9" - services: app: image: monica:fpm @@ -246,7 +250,7 @@ When using FPM image, you will need another container with a webserver to proxy 4. Run ```console - docker-compose up -d + docker compose up -d ``` Wait until all migrations are done and then access Monica at http://localhost:8080/ from your host system. If this looks ok, add your first user account. @@ -254,7 +258,7 @@ When using FPM image, you will need another container with a webserver to proxy 5. Run this command once: ```console - docker-compose exec app php artisan setup:production + docker compose exec app php artisan setup:production ``` ## Make Monica available from the internet @@ -267,7 +271,7 @@ One way to expose your Monica instance is to use a proxy webserver from your hos ### Using a proxy webserver container -See some examples of docker-compose possibilities in the [example section](https://github.com/monicahq/docker/blob/main/.examples) to show how to a proxy webserver with ssl capabilities. +See some examples of Docker Compose possibilities in the [example section](https://github.com/monicahq/docker/blob/main/.examples) to show how to a proxy webserver with ssl capabilities. # Image Variants diff --git a/monica/content.md b/monica/content.md index 8edab36bc330..4dacccf48275 100644 --- a/monica/content.md +++ b/monica/content.md @@ -30,7 +30,7 @@ docker run --name some-%%REPO%% -d -p 9000:9000 %%IMAGE%%:fpm ### Using an external database -You'll need to setup an external database. Monica currently support MySQL/MariaDB database. You can also link a database container, e. g. `--link my-mysql:db`, and then use `db` as the database host on setup. More info is in the docker-compose section. +You'll need to setup an external database. Monica currently support MySQL/MariaDB database. You can also link a database container, e. g. `--link my-mysql:db`, and then use `db` as the database host on setup. More info is in the Docker Compose section. ### Persistent data storage @@ -52,21 +52,21 @@ Like every Laravel application, the `php artisan` command is very usefull for Mo docker exec CONTAINER_ID php artisan COMMAND ``` -or for docker-compose +Or for Docker Compose: ```console -docker-compose exec %%REPO%% php artisan COMMAND +docker compose exec %%REPO%% php artisan COMMAND ``` -where `%%REPO%%` is the name of the service in your `docker-compose.yml` file. +where `%%REPO%%` is the name of the service in your `compose.yaml` file. ## Configuration using environment variables The Monica image will use environment variables to setup the application. See [Monica documentation](https://github.com/monicahq/monica/blob/4.x/.env.example) for common used variables you should setup. -## Running the image with docker-compose +## Running the image with Docker Compose -See some examples of docker-compose possibilities in the [example section](%%GITHUB-REPO%%/blob/main/.examples). +See some examples of Docker Compose possibilities in the [example section](%%GITHUB-REPO%%/blob/main/.examples). --- @@ -76,11 +76,9 @@ This version will use the apache image and add a mysql container. The volumes ar Make sure to pass in values for `APP_KEY` variable before you run this setup. -1. Create a `docker-compose.yml` file +1. Create a `compose.yaml` file ```yaml - version: "3.9" - services: app: image: monica @@ -120,7 +118,7 @@ Make sure to pass in values for `APP_KEY` variable before you run this setup. 3. Run ```console - docker-compose up -d + docker compose up -d ``` Wait until all migrations are done and then access Monica at http://localhost:8080/ from your host system. If this looks ok, add your first user account. @@ -128,7 +126,7 @@ Make sure to pass in values for `APP_KEY` variable before you run this setup. 4. Run this command once: ```console - docker-compose exec app php artisan setup:production + docker compose exec app php artisan setup:production ``` ### FPM version @@ -143,13 +141,11 @@ When using FPM image, you will need another container with a webserver to proxy curl -sSL https://raw.githubusercontent.com/monicahq/docker/main/.examples/full/web/Dockerfile -o web/Dockerfile ``` - The `web` container image should be pre-build before each deploy with: `docker-compose build`. + The `web` container image should be pre-build before each deploy with: `docker compose build`. -2. Create a `docker-compose.yml` file +2. Create a `compose.yaml` file ```yaml - version: "3.9" - services: app: image: monica:fpm @@ -197,7 +193,7 @@ When using FPM image, you will need another container with a webserver to proxy 4. Run ```console - docker-compose up -d + docker compose up -d ``` Wait until all migrations are done and then access Monica at http://localhost:8080/ from your host system. If this looks ok, add your first user account. @@ -205,7 +201,7 @@ When using FPM image, you will need another container with a webserver to proxy 5. Run this command once: ```console - docker-compose exec app php artisan setup:production + docker compose exec app php artisan setup:production ``` ## Make Monica available from the internet @@ -218,4 +214,4 @@ One way to expose your Monica instance is to use a proxy webserver from your hos ### Using a proxy webserver container -See some examples of docker-compose possibilities in the [example section](%%GITHUB-REPO%%/blob/main/.examples) to show how to a proxy webserver with ssl capabilities. +See some examples of Docker Compose possibilities in the [example section](%%GITHUB-REPO%%/blob/main/.examples) to show how to a proxy webserver with ssl capabilities. diff --git a/monica/metadata.json b/monica/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/monica/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/mono/README-short.txt b/mono/README-short.txt index 19bb0ad99d97..8b4e69d86aea 100644 --- a/mono/README-short.txt +++ b/mono/README-short.txt @@ -1 +1 @@ -Mono is an open source implementation of Microsoft's .NET Framework +DEPRECATED; Mono is an open source implementation of Microsoft's .NET Framework diff --git a/mono/README.md b/mono/README.md index 87f1c260b53d..c56ffd3cecd3 100644 --- a/mono/README.md +++ b/mono/README.md @@ -14,6 +14,10 @@ WARNING: --> +# **DEPRECATION NOTICE** + +This image is deprecated due to maintainer inactivity (last updated Jun 2022; [docker-library/official-images#12682](https://github.com/docker-library/official-images/pull/12682)). + # Quick reference - **Maintained by**: @@ -25,8 +29,11 @@ WARNING: # Supported tags and respective `Dockerfile` links - [`6.12.0.182`, `latest`, `6.12.0`, `6.12`, `6`](https://github.com/mono/docker/blob/9293c0cddf31a3dc829fccc6f8e1eb507a91cd34/6.12.0.182/Dockerfile) + - [`6.12.0.182-slim`, `slim`, `6.12.0-slim`, `6.12-slim`, `6-slim`](https://github.com/mono/docker/blob/9293c0cddf31a3dc829fccc6f8e1eb507a91cd34/6.12.0.182/slim/Dockerfile) + - [`6.10.0.104`, `6.10.0`, `6.10`](https://github.com/mono/docker/blob/0403aaf506b8f6859332a5035f660a7a228d3a97/6.10.0.104/Dockerfile) + - [`6.10.0.104-slim`, `6.10.0-slim`, `6.10-slim`](https://github.com/mono/docker/blob/0403aaf506b8f6859332a5035f660a7a228d3a97/6.10.0.104/slim/Dockerfile) # Quick reference (cont.) diff --git a/mono/deprecated.md b/mono/deprecated.md new file mode 100644 index 000000000000..bf91fc036570 --- /dev/null +++ b/mono/deprecated.md @@ -0,0 +1 @@ +This image is deprecated due to maintainer inactivity (last updated Jun 2022; [docker-library/official-images#12682](https://github.com/docker-library/official-images/pull/12682)). diff --git a/mono/metadata.json b/mono/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/mono/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/mysql/README.md b/mysql/README.md index 292356662029..0b792ecb5e15 100644 --- a/mysql/README.md +++ b/mysql/README.md @@ -24,10 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.2.0`, `8.2`, `8`, `innovation`, `latest`, `8.2.0-oracle`, `8.2-oracle`, `8-oracle`, `innovation-oracle`, `oracle`](https://github.com/docker-library/mysql/blob/76806cdd0acee2dec39b1b66e9c8015ef75be196/innovation/Dockerfile.oracle) -- [`8.0.35`, `8.0`, `8.0.35-oracle`, `8.0-oracle`](https://github.com/docker-library/mysql/blob/84ba05eaa75e1f0e1d33185e23f95a9cdc607b51/8.0/Dockerfile.oracle) -- [`8.0.35-debian`, `8.0-debian`](https://github.com/docker-library/mysql/blob/84ba05eaa75e1f0e1d33185e23f95a9cdc607b51/8.0/Dockerfile.debian) -- [`5.7.44`, `5.7`, `5`, `5.7.44-oracle`, `5.7-oracle`, `5-oracle`](https://github.com/docker-library/mysql/blob/9678ed1d27794ae9529c43b4411e30f981ce39ea/5.7/Dockerfile.oracle) +- [`9.3.0`, `9.3`, `9`, `innovation`, `latest`, `9.3.0-oraclelinux9`, `9.3-oraclelinux9`, `9-oraclelinux9`, `innovation-oraclelinux9`, `oraclelinux9`, `9.3.0-oracle`, `9.3-oracle`, `9-oracle`, `innovation-oracle`, `oracle`](https://github.com/docker-library/mysql/blob/1b9d0c10ad8569c9419d76aacec9dbab23c48e9e/innovation/Dockerfile.oracle) + +- [`8.4.5`, `8.4`, `8`, `lts`, `8.4.5-oraclelinux9`, `8.4-oraclelinux9`, `8-oraclelinux9`, `lts-oraclelinux9`, `8.4.5-oracle`, `8.4-oracle`, `8-oracle`, `lts-oracle`](https://github.com/docker-library/mysql/blob/8ade9b2c9a32a79fbaa44b564d09a40744f1d105/8.4/Dockerfile.oracle) + +- [`8.0.42`, `8.0`, `8.0.42-oraclelinux9`, `8.0-oraclelinux9`, `8.0.42-oracle`, `8.0-oracle`](https://github.com/docker-library/mysql/blob/94583e54d3bc02af523af720fdd58f8215287da9/8.0/Dockerfile.oracle) + +- [`8.0.42-bookworm`, `8.0-bookworm`, `8.0.42-debian`, `8.0-debian`](https://github.com/docker-library/mysql/blob/94583e54d3bc02af523af720fdd58f8215287da9/8.0/Dockerfile.debian) # Quick reference (cont.) @@ -86,35 +89,24 @@ $ docker run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p More information about the MySQL command line client can be found in the [MySQL documentation](http://dev.mysql.com/doc/en/mysql.html) -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `mysql`: +Example `compose.yaml` for `mysql`: ```yaml # Use root/example as user/password credentials -version: '3.1' services: db: image: mysql - # NOTE: use of "mysql_native_password" is not recommended: https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password - # (this is just an example, not intended to be a production configuration) - command: --default-authentication-plugin=mysql_native_password restart: always environment: MYSQL_ROOT_PASSWORD: example - - adminer: - image: adminer - restart: always - ports: - - 8080:8080 + # (this is just an example, not intended to be a production configuration) ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/06990e05c934d425c74addcc5ea462f53de6c8cd/mysql/stack.yml) - -Run `docker stack deploy -c stack.yml mysql` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Container shell access and viewing MySQL logs @@ -168,7 +160,7 @@ This variable is mandatory and specifies the password that will be set for the M ### `MYSQL_DATABASE` -This variable is optional and allows you to specify the name of a database to be created on image startup. If a user/password was supplied (see below) then that user will be granted superuser access ([corresponding to `GRANT ALL`](http://dev.mysql.com/doc/en/adding-users.html)) to this database. +This variable is optional and allows you to specify the name of a database to be created on image startup. If a user/password was supplied (see below) then that user will be granted superuser access ([corresponding to `GRANT ALL`](https://dev.mysql.com/doc/refman/en/creating-accounts.html)) to this database. ### `MYSQL_USER`, `MYSQL_PASSWORD` @@ -182,7 +174,7 @@ This is an optional variable. Set to a non-empty value, like `yes`, to allow the ### `MYSQL_RANDOM_ROOT_PASSWORD` -This is an optional variable. Set to a non-empty value, like `yes`, to generate a random initial password for the root user (using `pwgen`). The generated root password will be printed to stdout (`GENERATED ROOT PASSWORD: .....`). +This is an optional variable. Set to a non-empty value, like `yes`, to generate a random initial password for the root user (using `openssl`). The generated root password will be printed to stdout (`GENERATED ROOT PASSWORD: .....`). ### `MYSQL_ONETIME_PASSWORD` @@ -204,7 +196,7 @@ Currently, this is only supported for `MYSQL_ROOT_PASSWORD`, `MYSQL_ROOT_HOST`, # Initializing a fresh instance -When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql` and `.sql.gz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. You can easily populate your `mysql` services by [mounting a SQL dump into that directory](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-file-as-a-data-volume) and provide [custom images](https://docs.docker.com/reference/builder/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. +When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql` and `.sql.gz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. You can easily populate your `mysql` services by [mounting a SQL dump into that directory](https://docs.docker.com/storage/bind-mounts/) and provide [custom images](https://docs.docker.com/reference/dockerfile/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. # Caveats @@ -212,8 +204,8 @@ When a container is started for the first time, a new database with the specifie Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `mysql` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: @@ -228,7 +220,7 @@ The `-v /my/own/datadir:/var/lib/mysql` part of the command mounts the `/my/own/ ## No connections until MySQL init completes -If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker-compose`, which start several containers simultaneously. +If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as Docker Compose, which start several containers simultaneously. If the application you're trying to connect to MySQL does not handle MySQL downtime or waiting for MySQL to start gracefully, then putting a connect-retry loop before the service starts might be necessary. For an example of such an implementation in the official images, see [WordPress](https://github.com/docker-library/wordpress/blob/1b48b4bccd7adb0f7ea1431c7b470a40e186f3da/docker-entrypoint.sh#L195-L235) or [Bonita](https://github.com/docker-library/docs/blob/9660a0cccb87d8db842f33bc0578d769caaf3ba9/bonita/stack.yml#L28-L44). diff --git a/mysql/compose.yaml b/mysql/compose.yaml new file mode 100644 index 000000000000..28abad846d6d --- /dev/null +++ b/mysql/compose.yaml @@ -0,0 +1,10 @@ +# Use root/example as user/password credentials + +services: + + db: + image: mysql + restart: always + environment: + MYSQL_ROOT_PASSWORD: example + # (this is just an example, not intended to be a production configuration) diff --git a/mysql/content.md b/mysql/content.md index 1e05ae1a8a18..0e24f5399fd6 100644 --- a/mysql/content.md +++ b/mysql/content.md @@ -36,9 +36,9 @@ $ docker run -it --rm %%IMAGE%% mysql -hsome.mysql.host -usome-mysql-user -p More information about the MySQL command line client can be found in the [MySQL documentation](http://dev.mysql.com/doc/en/mysql.html) -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Container shell access and viewing MySQL logs @@ -92,7 +92,7 @@ This variable is mandatory and specifies the password that will be set for the M ### `MYSQL_DATABASE` -This variable is optional and allows you to specify the name of a database to be created on image startup. If a user/password was supplied (see below) then that user will be granted superuser access ([corresponding to `GRANT ALL`](http://dev.mysql.com/doc/en/adding-users.html)) to this database. +This variable is optional and allows you to specify the name of a database to be created on image startup. If a user/password was supplied (see below) then that user will be granted superuser access ([corresponding to `GRANT ALL`](https://dev.mysql.com/doc/refman/en/creating-accounts.html)) to this database. ### `MYSQL_USER`, `MYSQL_PASSWORD` @@ -106,7 +106,7 @@ This is an optional variable. Set to a non-empty value, like `yes`, to allow the ### `MYSQL_RANDOM_ROOT_PASSWORD` -This is an optional variable. Set to a non-empty value, like `yes`, to generate a random initial password for the root user (using `pwgen`). The generated root password will be printed to stdout (`GENERATED ROOT PASSWORD: .....`). +This is an optional variable. Set to a non-empty value, like `yes`, to generate a random initial password for the root user (using `openssl`). The generated root password will be printed to stdout (`GENERATED ROOT PASSWORD: .....`). ### `MYSQL_ONETIME_PASSWORD` @@ -128,7 +128,7 @@ Currently, this is only supported for `MYSQL_ROOT_PASSWORD`, `MYSQL_ROOT_HOST`, # Initializing a fresh instance -When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql` and `.sql.gz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. You can easily populate your `%%IMAGE%%` services by [mounting a SQL dump into that directory](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-file-as-a-data-volume) and provide [custom images](https://docs.docker.com/reference/builder/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. +When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql` and `.sql.gz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. You can easily populate your `%%IMAGE%%` services by [mounting a SQL dump into that directory](https://docs.docker.com/storage/bind-mounts/) and provide [custom images](https://docs.docker.com/reference/dockerfile/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. # Caveats @@ -136,8 +136,8 @@ When a container is started for the first time, a new database with the specifie Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `%%IMAGE%%` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: @@ -152,7 +152,7 @@ The `-v /my/own/datadir:/var/lib/mysql` part of the command mounts the `/my/own/ ## No connections until MySQL init completes -If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker-compose`, which start several containers simultaneously. +If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as Docker Compose, which start several containers simultaneously. If the application you're trying to connect to MySQL does not handle MySQL downtime or waiting for MySQL to start gracefully, then putting a connect-retry loop before the service starts might be necessary. For an example of such an implementation in the official images, see [WordPress](https://github.com/docker-library/wordpress/blob/1b48b4bccd7adb0f7ea1431c7b470a40e186f3da/docker-entrypoint.sh#L195-L235) or [Bonita](https://github.com/docker-library/docs/blob/9660a0cccb87d8db842f33bc0578d769caaf3ba9/bonita/stack.yml#L28-L44). diff --git a/mysql/metadata.json b/mysql/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/mysql/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/mysql/stack.yml b/mysql/stack.yml deleted file mode 100644 index ed16565b6311..000000000000 --- a/mysql/stack.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Use root/example as user/password credentials -version: '3.1' - -services: - - db: - image: mysql - # NOTE: use of "mysql_native_password" is not recommended: https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password - # (this is just an example, not intended to be a production configuration) - command: --default-authentication-plugin=mysql_native_password - restart: always - environment: - MYSQL_ROOT_PASSWORD: example - - adminer: - image: adminer - restart: always - ports: - - 8080:8080 diff --git a/nats-streaming/README-short.txt b/nats-streaming/README-short.txt deleted file mode 100644 index caea83c13a35..000000000000 --- a/nats-streaming/README-short.txt +++ /dev/null @@ -1 +0,0 @@ -DEPRECATED; An open-source, high-performance, cloud native messaging streaming system. diff --git a/nats-streaming/README.md b/nats-streaming/README.md deleted file mode 100644 index 53686f2893b0..000000000000 --- a/nats-streaming/README.md +++ /dev/null @@ -1,382 +0,0 @@ - - -# **DEPRECATION NOTICE** - -The NATS Streaming Server is being deprecated. Critical bug fixes and security fixes will be applied until June of 2023. NATS enabled applications requiring persistence should use [JetStream](https://docs.nats.io/jetstream/jetstream). - -# Quick reference - -- **Maintained by**: - [the NATS Project](https://github.com/nats-io/nats-streaming-docker) - -- **Where to get help**: - [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) - -# Supported tags and respective `Dockerfile` links - -(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).) - -## Simple Tags - -- [`0.25.5-alpine3.18`, `0.25-alpine3.18`, `alpine3.18`, `0.25.5-alpine`, `0.25-alpine`, `alpine`](https://github.com/nats-io/nats-streaming-docker/blob/d8dd9e2f5f7943f6a4d08de304f2bce513cc6735/0.25.5/alpine3.18/Dockerfile) -- [`0.25.5-scratch`, `0.25-scratch`, `scratch`, `0.25.5-linux`, `0.25-linux`, `linux`](https://github.com/nats-io/nats-streaming-docker/blob/d8dd9e2f5f7943f6a4d08de304f2bce513cc6735/0.25.5/scratch/Dockerfile) -- [`0.25.5-windowsservercore-1809`, `0.25-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/nats-io/nats-streaming-docker/blob/d8dd9e2f5f7943f6a4d08de304f2bce513cc6735/0.25.5/windowsservercore-1809/Dockerfile) -- [`0.25.5-nanoserver-1809`, `0.25-nanoserver-1809`, `nanoserver-1809`](https://github.com/nats-io/nats-streaming-docker/blob/d8dd9e2f5f7943f6a4d08de304f2bce513cc6735/0.25.5/nanoserver-1809/Dockerfile) - -## Shared Tags - -- `0.25.5`, `0.25`, `latest`: - - [`0.25.5-scratch`](https://github.com/nats-io/nats-streaming-docker/blob/d8dd9e2f5f7943f6a4d08de304f2bce513cc6735/0.25.5/scratch/Dockerfile) - - [`0.25.5-nanoserver-1809`](https://github.com/nats-io/nats-streaming-docker/blob/d8dd9e2f5f7943f6a4d08de304f2bce513cc6735/0.25.5/nanoserver-1809/Dockerfile) -- `0.25.5-windowsservercore`, `0.25-windowsservercore`, `windowsservercore`: - - [`0.25.5-windowsservercore-1809`](https://github.com/nats-io/nats-streaming-docker/blob/d8dd9e2f5f7943f6a4d08de304f2bce513cc6735/0.25.5/windowsservercore-1809/Dockerfile) -- `0.25.5-nanoserver`, `0.25-nanoserver`, `nanoserver`: - - [`0.25.5-nanoserver-1809`](https://github.com/nats-io/nats-streaming-docker/blob/d8dd9e2f5f7943f6a4d08de304f2bce513cc6735/0.25.5/nanoserver-1809/Dockerfile) - -# Quick reference (cont.) - -- **Where to file issues**: - [https://github.com/nats-io/nats-streaming-docker/issues](https://github.com/nats-io/nats-streaming-docker/issues?q=) - -- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/nats-streaming/), [`arm32v6`](https://hub.docker.com/r/arm32v6/nats-streaming/), [`arm32v7`](https://hub.docker.com/r/arm32v7/nats-streaming/), [`arm64v8`](https://hub.docker.com/r/arm64v8/nats-streaming/), [`windows-amd64`](https://hub.docker.com/r/winamd64/nats-streaming/) - -- **Published image artifact details**: - [repo-info repo's `repos/nats-streaming/` directory](https://github.com/docker-library/repo-info/blob/master/repos/nats-streaming) ([history](https://github.com/docker-library/repo-info/commits/master/repos/nats-streaming)) - (image metadata, transfer size, etc) - -- **Image updates**: - [official-images repo's `library/nats-streaming` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fnats-streaming) - [official-images repo's `library/nats-streaming` file](https://github.com/docker-library/official-images/blob/master/library/nats-streaming) ([history](https://github.com/docker-library/official-images/commits/master/library/nats-streaming)) - -- **Source of this description**: - [docs repo's `nats-streaming/` directory](https://github.com/docker-library/docs/tree/master/nats-streaming) ([history](https://github.com/docker-library/docs/commits/master/nats-streaming)) - -# [NATS Streaming](https://nats.io): A high-performance cloud native messaging streaming system. - -![logo](https://raw.githubusercontent.com/docker-library/docs/ad703934a62fabf54452755c8486698ff6fc5cc2/nats-streaming/logo.png) - -`nats-streaming` is a high performance streaming server for the NATS Messaging System. - -# Backward compatibility note - -Note that the Streaming server itself is backward compatible with previous releases, however, v0.15.0+ now embeds a NATS Server 2.0, which means that if you run with the embedded NATS server and want to route it to your existing v0.14.3- servers, it will fail due to NATS Server routing protocol change. You can however use v0.15.0+ and connect it to existing NATS cluster and therefore have a mix of v0.15.0 and v0.14.3- streaming servers. - -# Windows Docker images - -Due to restrictions on how the Windows Docker Image is built, running the image without argument will run the NATS Streaming server with memory based store on port 4222 and the monitoring port 8222. If you need to specify any additional argument, or modify these options, you need to specify the executable name as this: - -```bash -$ docker run -p 4223:4223 -p 8223:8223 nats-streaming nats-streaming-server -p 4223 -m 8223 -``` - -If you need to specify the entrypoint: - -```bash -$ docker run --entrypoint c:/nats-streaming-server/nats-streaming-server -p 4222:4222 -p 8222:8222 nats-streaming -``` - -# Non Windows Docker images - -If you need to provide arguments to the NATS Streaming server, just pass them to the command line. For instance, to change the listen and monitoring port to 4223 and 8223 respectively: - -```bash -$ docker run -p 4223:4223 -p 8223:8223 nats-streaming -p 4223 -m 8223 -``` - -If you need to specify the entrypoint: - -```bash -$ docker run --entrypoint /nats-streaming-server -p 4222:4222 -p 8222:8222 nats-streaming -``` - -# Example usage - -```bash -# Run a NATS Streaming server -# Each server exposes multiple ports -# 4222 is for clients. -# 8222 is an HTTP management port for information reporting. -# -# To actually publish the ports when running the container, use the Docker port mapping -# flag "docker run -p :" to publish and map one or more ports, -# or the -P flag to publish all exposed ports and map them to high-order ports. -# -# This should not be confused with the NATS Streaming Server own -p parameter. -# For instance, to run the NATS Streaming Server and have it listen on port 4444, -# you would have to run like this: -# -# docker run -p 4444:4444 nats-streaming -p 4444 -# -# Or, if you want to publish the port 4444 as a different port, for example 5555: -# -# docker run -p 5555:4444 nats-streaming -p 4444 -# -# Check "docker run" for more information. - -$ docker run -d -p 4222:4222 -p 8222:8222 nats-streaming -``` - -Output that you would get if you had started with `-ti` instead of `d` (for daemon): - -```bash -[1] 2022/10/11 14:57:50.404688 [INF] STREAM: Starting nats-streaming-server[test-cluster] version 0.25.2 -[1] 2022/10/11 14:57:50.404739 [INF] STREAM: ServerID: fbZJjwGYLBpNM5I8z23NSN -[1] 2022/10/11 14:57:50.404741 [INF] STREAM: Go version: go1.19.2 -[1] 2022/10/11 14:57:50.404743 [INF] STREAM: Git commit: [9e599667] -[1] 2022/10/11 14:57:50.406004 [INF] Starting nats-server -[1] 2022/10/11 14:57:50.406009 [INF] Version: 2.9.3 -[1] 2022/10/11 14:57:50.406011 [INF] Git: [25e82d7] -[1] 2022/10/11 14:57:50.406013 [INF] Name: NDQOBTB34ECZWAKAJAREPEXQPXGKUEJEZINCHV2CIHGGJQCSCVPQPU5W -[1] 2022/10/11 14:57:50.406015 [INF] ID: NDQOBTB34ECZWAKAJAREPEXQPXGKUEJEZINCHV2CIHGGJQCSCVPQPU5W -[1] 2022/10/11 14:57:50.406423 [INF] Listening for client connections on 0.0.0.0:4222 -[1] 2022/10/11 14:57:50.406679 [INF] Server is ready -[1] 2022/10/11 14:57:50.434935 [INF] STREAM: Recovering the state... -[1] 2022/10/11 14:57:50.434945 [INF] STREAM: No recovered state -[1] 2022/10/11 14:57:50.435271 [INF] STREAM: Message store is MEMORY -[1] 2022/10/11 14:57:50.435303 [INF] STREAM: ---------- Store Limits ---------- -[1] 2022/10/11 14:57:50.435306 [INF] STREAM: Channels: 100 * -[1] 2022/10/11 14:57:50.435308 [INF] STREAM: --------- Channels Limits -------- -[1] 2022/10/11 14:57:50.435310 [INF] STREAM: Subscriptions: 1000 * -[1] 2022/10/11 14:57:50.435311 [INF] STREAM: Messages : 1000000 * -[1] 2022/10/11 14:57:50.435313 [INF] STREAM: Bytes : 976.56 MB * -[1] 2022/10/11 14:57:50.435315 [INF] STREAM: Age : unlimited * -[1] 2022/10/11 14:57:50.435316 [INF] STREAM: Inactivity : unlimited * -[1] 2022/10/11 14:57:50.435318 [INF] STREAM: ---------------------------------- -[1] 2022/10/11 14:57:50.435320 [INF] STREAM: Streaming Server is ready -``` - -To use a file based store instead, you would run: - -```bash -$ docker run -d -p 4222:4222 -p 8222:8222 nats-streaming -store file -dir datastore - -[1] 2022/10/11 14:59:45.818823 [INF] STREAM: Starting nats-streaming-server[test-cluster] version 0.25.2 -[1] 2022/10/11 14:59:45.818874 [INF] STREAM: ServerID: mNhpLEpCO6WFqrnD9CYEZa -[1] 2022/10/11 14:59:45.818876 [INF] STREAM: Go version: go1.19.2 -[1] 2022/10/11 14:59:45.818877 [INF] STREAM: Git commit: [9e599667] -[1] 2022/10/11 14:59:45.820192 [INF] Starting nats-server -[1] 2022/10/11 14:59:45.820196 [INF] Version: 2.9.3 -[1] 2022/10/11 14:59:45.820198 [INF] Git: [25e82d7] -[1] 2022/10/11 14:59:45.820200 [INF] Name: NCDMFFEVOSPVVGQZVEQ3O5434LHF2KAPOR5LKAI7YEIAFIABTHQLZRLA -[1] 2022/10/11 14:59:45.820202 [INF] ID: NCDMFFEVOSPVVGQZVEQ3O5434LHF2KAPOR5LKAI7YEIAFIABTHQLZRLA -[1] 2022/10/11 14:59:45.820688 [INF] Listening for client connections on 0.0.0.0:4222 -[1] 2022/10/11 14:59:45.820849 [INF] Server is ready -[1] 2022/10/11 14:59:45.848443 [INF] STREAM: Recovering the state... -[1] 2022/10/11 14:59:45.848737 [INF] STREAM: No recovered state -[1] 2022/10/11 14:59:45.849050 [INF] STREAM: Message store is FILE -[1] 2022/10/11 14:59:45.849054 [INF] STREAM: Store location: datastore -[1] 2022/10/11 14:59:45.849070 [INF] STREAM: ---------- Store Limits ---------- -[1] 2022/10/11 14:59:45.849072 [INF] STREAM: Channels: 100 * -[1] 2022/10/11 14:59:45.849073 [INF] STREAM: --------- Channels Limits -------- -[1] 2022/10/11 14:59:45.849075 [INF] STREAM: Subscriptions: 1000 * -[1] 2022/10/11 14:59:45.849076 [INF] STREAM: Messages : 1000000 * -[1] 2022/10/11 14:59:45.849077 [INF] STREAM: Bytes : 976.56 MB * -[1] 2022/10/11 14:59:45.849078 [INF] STREAM: Age : unlimited * -[1] 2022/10/11 14:59:45.849079 [INF] STREAM: Inactivity : unlimited * -[1] 2022/10/11 14:59:45.849080 [INF] STREAM: ---------------------------------- -[1] 2022/10/11 14:59:45.849082 [INF] STREAM: Streaming Server is ready -``` - -You can also connect to a remote NATS Server running in a docker image. First, run NATS Server: - -```bash -$ docker run -d --name=nats-main -p 4222:4222 -p 6222:6222 -p 8222:8222 nats -``` - -Now, start the Streaming server and link it to the above docker image: - -```bash -$ docker run -d --link nats-main nats-streaming -store file -dir datastore -ns nats://nats-main:4222 - -[1] 2022/10/11 15:00:56.780184 [INF] STREAM: Starting nats-streaming-server[test-cluster] version 0.25.2 -[1] 2022/10/11 15:00:56.780235 [INF] STREAM: ServerID: jVQkB4KiIN4IVIuVoSumE0 -[1] 2022/10/11 15:00:56.780237 [INF] STREAM: Go version: go1.19.2 -[1] 2022/10/11 15:00:56.780241 [INF] STREAM: Git commit: [9e599667] -[1] 2022/10/11 15:00:56.809173 [INF] STREAM: Recovering the state... -[1] 2022/10/11 15:00:56.810336 [INF] STREAM: Recovered 0 channel(s) -[1] 2022/10/11 15:00:56.810612 [INF] STREAM: Message store is FILE -[1] 2022/10/11 15:00:56.810617 [INF] STREAM: Store location: datastore -[1] 2022/10/11 15:00:56.810633 [INF] STREAM: ---------- Store Limits ---------- -[1] 2022/10/11 15:00:56.810635 [INF] STREAM: Channels: 100 * -[1] 2022/10/11 15:00:56.810636 [INF] STREAM: --------- Channels Limits -------- -[1] 2022/10/11 15:00:56.810637 [INF] STREAM: Subscriptions: 1000 * -[1] 2022/10/11 15:00:56.810639 [INF] STREAM: Messages : 1000000 * -[1] 2022/10/11 15:00:56.810640 [INF] STREAM: Bytes : 976.56 MB * -[1] 2022/10/11 15:00:56.810641 [INF] STREAM: Age : unlimited * -[1] 2022/10/11 15:00:56.810642 [INF] STREAM: Inactivity : unlimited * -[1] 2022/10/11 15:00:56.810643 [INF] STREAM: ---------------------------------- -[1] 2022/10/11 15:00:56.810644 [INF] STREAM: Streaming Server is ready -``` - -Notice that the output shows that the NATS Server was not started, as opposed to the first output. - -# Commandline Options - -```bash -Streaming Server Options: - -cid, --cluster_id Cluster ID (default: test-cluster) - -st, --store Store type: MEMORY|FILE|SQL (default: MEMORY) - --dir For FILE store type, this is the root directory - -mc, --max_channels Max number of channels (0 for unlimited) - -msu, --max_subs Max number of subscriptions per channel (0 for unlimited) - -mm, --max_msgs Max number of messages per channel (0 for unlimited) - -mb, --max_bytes Max messages total size per channel (0 for unlimited) - -ma, --max_age Max duration a message can be stored ("0s" for unlimited) - -mi, --max_inactivity Max inactivity (no new message, no subscription) after which a channel can be garbage collected (0 for unlimited) - -ns, --nats_server Connect to this external NATS Server URL (embedded otherwise) - -sc, --stan_config Streaming server configuration file - -hbi, --hb_interval Interval at which server sends heartbeat to a client - -hbt, --hb_timeout How long server waits for a heartbeat response - -hbf, --hb_fail_count Number of failed heartbeats before server closes the client connection - --ft_group Name of the FT Group. A group can be 2 or more servers with a single active server and all sharing the same datastore - -sl, --signal [=] Send signal to nats-streaming-server process (stop, quit, reopen, reload - only for embedded NATS Server) - --encrypt Specify if server should use encryption at rest - --encryption_cipher Cipher to use for encryption. Currently support AES and CHAHA (ChaChaPoly). Defaults to AES - --encryption_key Encryption Key. It is recommended to specify it through the NATS_STREAMING_ENCRYPTION_KEY environment variable instead - --replace_durable Replace the existing durable subscription instead of reporting a duplicate durable error - -Streaming Server Clustering Options: - --clustered Run the server in a clustered configuration (default: false) - --cluster_node_id ID of the node within the cluster if there is no stored ID (default: random UUID) - --cluster_bootstrap Bootstrap the cluster if there is no existing state by electing self as leader (default: false) - --cluster_peers Comma separated list of cluster peer node IDs to bootstrap cluster state - --cluster_log_path Directory to store log replication data - --cluster_log_cache_size Number of log entries to cache in memory to reduce disk IO (default: 512) - --cluster_log_snapshots Number of log snapshots to retain (default: 2) - --cluster_trailing_logs Number of log entries to leave after a snapshot and compaction - --cluster_sync Do a file sync after every write to the replication log and message store - --cluster_raft_logging Enable logging from the Raft library (disabled by default) - --cluster_allow_add_remove_node Enable the ability to send NATS requests to the leader to add/remove cluster nodes - -Streaming Server File Store Options: - --file_compact_enabled Enable file compaction - --file_compact_frag File fragmentation threshold for compaction - --file_compact_interval Minimum interval (in seconds) between file compactions - --file_compact_min_size Minimum file size for compaction - --file_buffer_size File buffer size (in bytes) - --file_crc Enable file CRC-32 checksum - --file_crc_poly Polynomial used to make the table used for CRC-32 checksum - --file_sync Enable File.Sync on Flush - --file_slice_max_msgs Maximum number of messages per file slice (subject to channel limits) - --file_slice_max_bytes Maximum file slice size - including index file (subject to channel limits) - --file_slice_max_age Maximum file slice duration starting when the first message is stored (subject to channel limits) - --file_slice_archive_script Path to script to use if you want to archive a file slice being removed - --file_fds_limit Store will try to use no more file descriptors than this given limit - --file_parallel_recovery On startup, number of channels that can be recovered in parallel - --file_truncate_bad_eof Truncate files for which there is an unexpected EOF on recovery, dataloss may occur - --file_read_buffer_size Size of messages read ahead buffer (0 to disable) - --file_auto_sync Interval at which the store should be automatically flushed and sync'ed on disk (<= 0 to disable) - -Streaming Server SQL Store Options: - --sql_driver Name of the SQL Driver ("mysql" or "postgres") - --sql_source Datasource used when opening an SQL connection to the database - --sql_no_caching Enable/Disable caching for improved performance - --sql_max_open_conns Maximum number of opened connections to the database - --sql_bulk_insert_limit Maximum number of messages stored with a single SQL "INSERT" statement - -Streaming Server TLS Options: - -secure Use a TLS connection to the NATS server without - verification; weaker than specifying certificates. - -tls_client_key Client key for the streaming server - -tls_client_cert Client certificate for the streaming server - -tls_client_cacert Client certificate CA for the streaming server - -Streaming Server Logging Options: - -SD, --stan_debug= Enable STAN debugging output - -SV, --stan_trace= Trace the raw STAN protocol - -SDV Debug and trace STAN - --syslog_name On Windows, when running several servers as a service, use this name for the event source - (See additional NATS logging options below) - -Embedded NATS Server Options: - -a, --addr Bind to host address (default: 0.0.0.0) - -p, --port Use port for clients (default: 4222) - -P, --pid File to store PID - -m, --http_port Use port for http monitoring - -ms,--https_port Use port for https monitoring - -c, --config Configuration file - -Logging Options: - -l, --log File to redirect log output - -T, --logtime= Timestamp log entries (default: true) - -s, --syslog Enable syslog as log method - -r, --remote_syslog Syslog server addr (udp://localhost:514) - -D, --debug= Enable debugging output - -V, --trace= Trace the raw protocol - -DV Debug and trace - -Authorization Options: - --user User required for connections - --pass Password required for connections - --auth Authorization token required for connections - -TLS Options: - --tls= Enable TLS, do not verify clients (default: false) - --tlscert Server certificate file - --tlskey Private key for server certificate - --tlsverify= Enable TLS, verify client certificates - --tlscacert Client certificate CA for verification - -NATS Clustering Options: - --routes Routes to solicit and connect - --cluster Cluster URL for solicited routes - -Common Options: - -h, --help Show this message - -v, --version Show version - --help_tls TLS help. -``` - -# Configuration - -Details on how to configure further the NATS Streaming server can be found [here](https://docs.nats.io/nats-streaming-server/configuring) - -# Image Variants - -The `nats-streaming` images come in many flavors, each designed for a specific use case. - -## `nats-streaming:` - -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. - -## `nats-streaming:-alpine` - -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. - -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. - -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). - -## `nats-streaming:-windowsservercore` - -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. - -For information about how to get Docker running on Windows, please see the relevant "Quick Start" guide provided by Microsoft: - -- [Windows Server Quick Start](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_server) -- [Windows 10 Quick Start](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_10) - -# License - -View [license information](https://github.com/nats-io/nats-streaming-server/blob/master/LICENSE) for the software contained in this image. - -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). - -Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `nats-streaming/` directory](https://github.com/docker-library/repo-info/tree/master/repos/nats-streaming). - -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. diff --git a/nats-streaming/content.md b/nats-streaming/content.md deleted file mode 100644 index 0545e41334ee..000000000000 --- a/nats-streaming/content.md +++ /dev/null @@ -1,279 +0,0 @@ -# [NATS Streaming](https://nats.io): A high-performance cloud native messaging streaming system. - -%%LOGO%% - -`nats-streaming` is a high performance streaming server for the NATS Messaging System. - -# Backward compatibility note - -Note that the Streaming server itself is backward compatible with previous releases, however, v0.15.0+ now embeds a NATS Server 2.0, which means that if you run with the embedded NATS server and want to route it to your existing v0.14.3- servers, it will fail due to NATS Server routing protocol change. You can however use v0.15.0+ and connect it to existing NATS cluster and therefore have a mix of v0.15.0 and v0.14.3- streaming servers. - -# Windows Docker images - -Due to restrictions on how the Windows Docker Image is built, running the image without argument will run the NATS Streaming server with memory based store on port 4222 and the monitoring port 8222. If you need to specify any additional argument, or modify these options, you need to specify the executable name as this: - -```bash -$ docker run -p 4223:4223 -p 8223:8223 %%IMAGE%% nats-streaming-server -p 4223 -m 8223 -``` - -If you need to specify the entrypoint: - -```bash -$ docker run --entrypoint c:/nats-streaming-server/nats-streaming-server -p 4222:4222 -p 8222:8222 %%IMAGE%% -``` - -# Non Windows Docker images - -If you need to provide arguments to the NATS Streaming server, just pass them to the command line. For instance, to change the listen and monitoring port to 4223 and 8223 respectively: - -```bash -$ docker run -p 4223:4223 -p 8223:8223 %%IMAGE%% -p 4223 -m 8223 -``` - -If you need to specify the entrypoint: - -```bash -$ docker run --entrypoint /nats-streaming-server -p 4222:4222 -p 8222:8222 %%IMAGE%% -``` - -# Example usage - -```bash -# Run a NATS Streaming server -# Each server exposes multiple ports -# 4222 is for clients. -# 8222 is an HTTP management port for information reporting. -# -# To actually publish the ports when running the container, use the Docker port mapping -# flag "docker run -p :" to publish and map one or more ports, -# or the -P flag to publish all exposed ports and map them to high-order ports. -# -# This should not be confused with the NATS Streaming Server own -p parameter. -# For instance, to run the NATS Streaming Server and have it listen on port 4444, -# you would have to run like this: -# -# docker run -p 4444:4444 %%IMAGE%% -p 4444 -# -# Or, if you want to publish the port 4444 as a different port, for example 5555: -# -# docker run -p 5555:4444 %%IMAGE%% -p 4444 -# -# Check "docker run" for more information. - -$ docker run -d -p 4222:4222 -p 8222:8222 %%IMAGE%% -``` - -Output that you would get if you had started with `-ti` instead of `d` (for daemon): - -```bash -[1] 2022/10/11 14:57:50.404688 [INF] STREAM: Starting nats-streaming-server[test-cluster] version 0.25.2 -[1] 2022/10/11 14:57:50.404739 [INF] STREAM: ServerID: fbZJjwGYLBpNM5I8z23NSN -[1] 2022/10/11 14:57:50.404741 [INF] STREAM: Go version: go1.19.2 -[1] 2022/10/11 14:57:50.404743 [INF] STREAM: Git commit: [9e599667] -[1] 2022/10/11 14:57:50.406004 [INF] Starting nats-server -[1] 2022/10/11 14:57:50.406009 [INF] Version: 2.9.3 -[1] 2022/10/11 14:57:50.406011 [INF] Git: [25e82d7] -[1] 2022/10/11 14:57:50.406013 [INF] Name: NDQOBTB34ECZWAKAJAREPEXQPXGKUEJEZINCHV2CIHGGJQCSCVPQPU5W -[1] 2022/10/11 14:57:50.406015 [INF] ID: NDQOBTB34ECZWAKAJAREPEXQPXGKUEJEZINCHV2CIHGGJQCSCVPQPU5W -[1] 2022/10/11 14:57:50.406423 [INF] Listening for client connections on 0.0.0.0:4222 -[1] 2022/10/11 14:57:50.406679 [INF] Server is ready -[1] 2022/10/11 14:57:50.434935 [INF] STREAM: Recovering the state... -[1] 2022/10/11 14:57:50.434945 [INF] STREAM: No recovered state -[1] 2022/10/11 14:57:50.435271 [INF] STREAM: Message store is MEMORY -[1] 2022/10/11 14:57:50.435303 [INF] STREAM: ---------- Store Limits ---------- -[1] 2022/10/11 14:57:50.435306 [INF] STREAM: Channels: 100 * -[1] 2022/10/11 14:57:50.435308 [INF] STREAM: --------- Channels Limits -------- -[1] 2022/10/11 14:57:50.435310 [INF] STREAM: Subscriptions: 1000 * -[1] 2022/10/11 14:57:50.435311 [INF] STREAM: Messages : 1000000 * -[1] 2022/10/11 14:57:50.435313 [INF] STREAM: Bytes : 976.56 MB * -[1] 2022/10/11 14:57:50.435315 [INF] STREAM: Age : unlimited * -[1] 2022/10/11 14:57:50.435316 [INF] STREAM: Inactivity : unlimited * -[1] 2022/10/11 14:57:50.435318 [INF] STREAM: ---------------------------------- -[1] 2022/10/11 14:57:50.435320 [INF] STREAM: Streaming Server is ready -``` - -To use a file based store instead, you would run: - -```bash -$ docker run -d -p 4222:4222 -p 8222:8222 %%IMAGE%% -store file -dir datastore - -[1] 2022/10/11 14:59:45.818823 [INF] STREAM: Starting nats-streaming-server[test-cluster] version 0.25.2 -[1] 2022/10/11 14:59:45.818874 [INF] STREAM: ServerID: mNhpLEpCO6WFqrnD9CYEZa -[1] 2022/10/11 14:59:45.818876 [INF] STREAM: Go version: go1.19.2 -[1] 2022/10/11 14:59:45.818877 [INF] STREAM: Git commit: [9e599667] -[1] 2022/10/11 14:59:45.820192 [INF] Starting nats-server -[1] 2022/10/11 14:59:45.820196 [INF] Version: 2.9.3 -[1] 2022/10/11 14:59:45.820198 [INF] Git: [25e82d7] -[1] 2022/10/11 14:59:45.820200 [INF] Name: NCDMFFEVOSPVVGQZVEQ3O5434LHF2KAPOR5LKAI7YEIAFIABTHQLZRLA -[1] 2022/10/11 14:59:45.820202 [INF] ID: NCDMFFEVOSPVVGQZVEQ3O5434LHF2KAPOR5LKAI7YEIAFIABTHQLZRLA -[1] 2022/10/11 14:59:45.820688 [INF] Listening for client connections on 0.0.0.0:4222 -[1] 2022/10/11 14:59:45.820849 [INF] Server is ready -[1] 2022/10/11 14:59:45.848443 [INF] STREAM: Recovering the state... -[1] 2022/10/11 14:59:45.848737 [INF] STREAM: No recovered state -[1] 2022/10/11 14:59:45.849050 [INF] STREAM: Message store is FILE -[1] 2022/10/11 14:59:45.849054 [INF] STREAM: Store location: datastore -[1] 2022/10/11 14:59:45.849070 [INF] STREAM: ---------- Store Limits ---------- -[1] 2022/10/11 14:59:45.849072 [INF] STREAM: Channels: 100 * -[1] 2022/10/11 14:59:45.849073 [INF] STREAM: --------- Channels Limits -------- -[1] 2022/10/11 14:59:45.849075 [INF] STREAM: Subscriptions: 1000 * -[1] 2022/10/11 14:59:45.849076 [INF] STREAM: Messages : 1000000 * -[1] 2022/10/11 14:59:45.849077 [INF] STREAM: Bytes : 976.56 MB * -[1] 2022/10/11 14:59:45.849078 [INF] STREAM: Age : unlimited * -[1] 2022/10/11 14:59:45.849079 [INF] STREAM: Inactivity : unlimited * -[1] 2022/10/11 14:59:45.849080 [INF] STREAM: ---------------------------------- -[1] 2022/10/11 14:59:45.849082 [INF] STREAM: Streaming Server is ready -``` - -You can also connect to a remote NATS Server running in a docker image. First, run NATS Server: - -```bash -$ docker run -d --name=nats-main -p 4222:4222 -p 6222:6222 -p 8222:8222 nats -``` - -Now, start the Streaming server and link it to the above docker image: - -```bash -$ docker run -d --link nats-main %%IMAGE%% -store file -dir datastore -ns nats://nats-main:4222 - -[1] 2022/10/11 15:00:56.780184 [INF] STREAM: Starting nats-streaming-server[test-cluster] version 0.25.2 -[1] 2022/10/11 15:00:56.780235 [INF] STREAM: ServerID: jVQkB4KiIN4IVIuVoSumE0 -[1] 2022/10/11 15:00:56.780237 [INF] STREAM: Go version: go1.19.2 -[1] 2022/10/11 15:00:56.780241 [INF] STREAM: Git commit: [9e599667] -[1] 2022/10/11 15:00:56.809173 [INF] STREAM: Recovering the state... -[1] 2022/10/11 15:00:56.810336 [INF] STREAM: Recovered 0 channel(s) -[1] 2022/10/11 15:00:56.810612 [INF] STREAM: Message store is FILE -[1] 2022/10/11 15:00:56.810617 [INF] STREAM: Store location: datastore -[1] 2022/10/11 15:00:56.810633 [INF] STREAM: ---------- Store Limits ---------- -[1] 2022/10/11 15:00:56.810635 [INF] STREAM: Channels: 100 * -[1] 2022/10/11 15:00:56.810636 [INF] STREAM: --------- Channels Limits -------- -[1] 2022/10/11 15:00:56.810637 [INF] STREAM: Subscriptions: 1000 * -[1] 2022/10/11 15:00:56.810639 [INF] STREAM: Messages : 1000000 * -[1] 2022/10/11 15:00:56.810640 [INF] STREAM: Bytes : 976.56 MB * -[1] 2022/10/11 15:00:56.810641 [INF] STREAM: Age : unlimited * -[1] 2022/10/11 15:00:56.810642 [INF] STREAM: Inactivity : unlimited * -[1] 2022/10/11 15:00:56.810643 [INF] STREAM: ---------------------------------- -[1] 2022/10/11 15:00:56.810644 [INF] STREAM: Streaming Server is ready -``` - -Notice that the output shows that the NATS Server was not started, as opposed to the first output. - -# Commandline Options - -```bash -Streaming Server Options: - -cid, --cluster_id Cluster ID (default: test-cluster) - -st, --store Store type: MEMORY|FILE|SQL (default: MEMORY) - --dir For FILE store type, this is the root directory - -mc, --max_channels Max number of channels (0 for unlimited) - -msu, --max_subs Max number of subscriptions per channel (0 for unlimited) - -mm, --max_msgs Max number of messages per channel (0 for unlimited) - -mb, --max_bytes Max messages total size per channel (0 for unlimited) - -ma, --max_age Max duration a message can be stored ("0s" for unlimited) - -mi, --max_inactivity Max inactivity (no new message, no subscription) after which a channel can be garbage collected (0 for unlimited) - -ns, --nats_server Connect to this external NATS Server URL (embedded otherwise) - -sc, --stan_config Streaming server configuration file - -hbi, --hb_interval Interval at which server sends heartbeat to a client - -hbt, --hb_timeout How long server waits for a heartbeat response - -hbf, --hb_fail_count Number of failed heartbeats before server closes the client connection - --ft_group Name of the FT Group. A group can be 2 or more servers with a single active server and all sharing the same datastore - -sl, --signal [=] Send signal to nats-streaming-server process (stop, quit, reopen, reload - only for embedded NATS Server) - --encrypt Specify if server should use encryption at rest - --encryption_cipher Cipher to use for encryption. Currently support AES and CHAHA (ChaChaPoly). Defaults to AES - --encryption_key Encryption Key. It is recommended to specify it through the NATS_STREAMING_ENCRYPTION_KEY environment variable instead - --replace_durable Replace the existing durable subscription instead of reporting a duplicate durable error - -Streaming Server Clustering Options: - --clustered Run the server in a clustered configuration (default: false) - --cluster_node_id ID of the node within the cluster if there is no stored ID (default: random UUID) - --cluster_bootstrap Bootstrap the cluster if there is no existing state by electing self as leader (default: false) - --cluster_peers Comma separated list of cluster peer node IDs to bootstrap cluster state - --cluster_log_path Directory to store log replication data - --cluster_log_cache_size Number of log entries to cache in memory to reduce disk IO (default: 512) - --cluster_log_snapshots Number of log snapshots to retain (default: 2) - --cluster_trailing_logs Number of log entries to leave after a snapshot and compaction - --cluster_sync Do a file sync after every write to the replication log and message store - --cluster_raft_logging Enable logging from the Raft library (disabled by default) - --cluster_allow_add_remove_node Enable the ability to send NATS requests to the leader to add/remove cluster nodes - -Streaming Server File Store Options: - --file_compact_enabled Enable file compaction - --file_compact_frag File fragmentation threshold for compaction - --file_compact_interval Minimum interval (in seconds) between file compactions - --file_compact_min_size Minimum file size for compaction - --file_buffer_size File buffer size (in bytes) - --file_crc Enable file CRC-32 checksum - --file_crc_poly Polynomial used to make the table used for CRC-32 checksum - --file_sync Enable File.Sync on Flush - --file_slice_max_msgs Maximum number of messages per file slice (subject to channel limits) - --file_slice_max_bytes Maximum file slice size - including index file (subject to channel limits) - --file_slice_max_age Maximum file slice duration starting when the first message is stored (subject to channel limits) - --file_slice_archive_script Path to script to use if you want to archive a file slice being removed - --file_fds_limit Store will try to use no more file descriptors than this given limit - --file_parallel_recovery On startup, number of channels that can be recovered in parallel - --file_truncate_bad_eof Truncate files for which there is an unexpected EOF on recovery, dataloss may occur - --file_read_buffer_size Size of messages read ahead buffer (0 to disable) - --file_auto_sync Interval at which the store should be automatically flushed and sync'ed on disk (<= 0 to disable) - -Streaming Server SQL Store Options: - --sql_driver Name of the SQL Driver ("mysql" or "postgres") - --sql_source Datasource used when opening an SQL connection to the database - --sql_no_caching Enable/Disable caching for improved performance - --sql_max_open_conns Maximum number of opened connections to the database - --sql_bulk_insert_limit Maximum number of messages stored with a single SQL "INSERT" statement - -Streaming Server TLS Options: - -secure Use a TLS connection to the NATS server without - verification; weaker than specifying certificates. - -tls_client_key Client key for the streaming server - -tls_client_cert Client certificate for the streaming server - -tls_client_cacert Client certificate CA for the streaming server - -Streaming Server Logging Options: - -SD, --stan_debug= Enable STAN debugging output - -SV, --stan_trace= Trace the raw STAN protocol - -SDV Debug and trace STAN - --syslog_name On Windows, when running several servers as a service, use this name for the event source - (See additional NATS logging options below) - -Embedded NATS Server Options: - -a, --addr Bind to host address (default: 0.0.0.0) - -p, --port Use port for clients (default: 4222) - -P, --pid File to store PID - -m, --http_port Use port for http monitoring - -ms,--https_port Use port for https monitoring - -c, --config Configuration file - -Logging Options: - -l, --log File to redirect log output - -T, --logtime= Timestamp log entries (default: true) - -s, --syslog Enable syslog as log method - -r, --remote_syslog Syslog server addr (udp://localhost:514) - -D, --debug= Enable debugging output - -V, --trace= Trace the raw protocol - -DV Debug and trace - -Authorization Options: - --user User required for connections - --pass Password required for connections - --auth Authorization token required for connections - -TLS Options: - --tls= Enable TLS, do not verify clients (default: false) - --tlscert Server certificate file - --tlskey Private key for server certificate - --tlsverify= Enable TLS, verify client certificates - --tlscacert Client certificate CA for verification - -NATS Clustering Options: - --routes Routes to solicit and connect - --cluster Cluster URL for solicited routes - -Common Options: - -h, --help Show this message - -v, --version Show version - --help_tls TLS help. -``` - -# Configuration - -Details on how to configure further the NATS Streaming server can be found [here](https://docs.nats.io/nats-streaming-server/configuring) diff --git a/nats-streaming/deprecated.md b/nats-streaming/deprecated.md deleted file mode 100644 index db266bd8ecad..000000000000 --- a/nats-streaming/deprecated.md +++ /dev/null @@ -1 +0,0 @@ -The NATS Streaming Server is being deprecated. Critical bug fixes and security fixes will be applied until June of 2023. NATS enabled applications requiring persistence should use [JetStream](https://docs.nats.io/jetstream/jetstream). diff --git a/nats-streaming/github-repo b/nats-streaming/github-repo deleted file mode 100644 index a585949191c7..000000000000 --- a/nats-streaming/github-repo +++ /dev/null @@ -1 +0,0 @@ -https://github.com/nats-io/nats-streaming-docker diff --git a/nats-streaming/license.md b/nats-streaming/license.md deleted file mode 100644 index 316d32e6bf65..000000000000 --- a/nats-streaming/license.md +++ /dev/null @@ -1 +0,0 @@ -View [license information](https://github.com/nats-io/nats-streaming-server/blob/master/LICENSE) for the software contained in this image. diff --git a/nats-streaming/logo.png b/nats-streaming/logo.png deleted file mode 100644 index 384aab597c7d..000000000000 Binary files a/nats-streaming/logo.png and /dev/null differ diff --git a/nats-streaming/maintainer.md b/nats-streaming/maintainer.md deleted file mode 120000 index c91a297fdd04..000000000000 --- a/nats-streaming/maintainer.md +++ /dev/null @@ -1 +0,0 @@ -../nats/maintainer.md \ No newline at end of file diff --git a/nats/README.md b/nats/README.md index 59a1883427da..a2c2bf206d2b 100644 --- a/nats/README.md +++ b/nats/README.md @@ -28,34 +28,49 @@ WARNING: ## Simple Tags -- [`2.10.5-alpine3.18`, `2.10-alpine3.18`, `2-alpine3.18`, `alpine3.18`, `2.10.5-alpine`, `2.10-alpine`, `2-alpine`, `alpine`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/alpine3.18/Dockerfile) -- [`2.10.5-scratch`, `2.10-scratch`, `2-scratch`, `scratch`, `2.10.5-linux`, `2.10-linux`, `2-linux`, `linux`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/scratch/Dockerfile) -- [`2.10.5-windowsservercore-1809`, `2.10-windowsservercore-1809`, `2-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/windowsservercore-1809/Dockerfile) -- [`2.10.5-nanoserver-1809`, `2.10-nanoserver-1809`, `2-nanoserver-1809`, `nanoserver-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/nanoserver-1809/Dockerfile) -- [`2.9.24-alpine3.18`, `2.9-alpine3.18`, `2.9.24-alpine`, `2.9-alpine`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.9.x/alpine3.18/Dockerfile) -- [`2.9.24-scratch`, `2.9-scratch`, `2.9.24-linux`, `2.9-linux`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.9.x/scratch/Dockerfile) -- [`2.9.24-windowsservercore-1809`, `2.9-windowsservercore-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.9.x/windowsservercore-1809/Dockerfile) -- [`2.9.24-nanoserver-1809`, `2.9-nanoserver-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.9.x/nanoserver-1809/Dockerfile) +- [`2.11.4-alpine3.22`, `2.11-alpine3.22`, `2-alpine3.22`, `alpine3.22`, `2.11.4-alpine`, `2.11-alpine`, `2-alpine`, `alpine`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.11.x/alpine3.22/Dockerfile) + +- [`2.11.4-scratch`, `2.11-scratch`, `2-scratch`, `scratch`, `2.11.4-linux`, `2.11-linux`, `2-linux`, `linux`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.11.x/scratch/Dockerfile) + +- [`2.11.4-windowsservercore-ltsc2022`, `2.11-windowsservercore-ltsc2022`, `2-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.11.x/windowsservercore-ltsc2022/Dockerfile) + +- [`2.11.4-nanoserver-ltsc2022`, `2.11-nanoserver-ltsc2022`, `2-nanoserver-ltsc2022`, `nanoserver-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.11.x/nanoserver-ltsc2022/Dockerfile) + +- [`2.10.29-alpine3.22`, `2.10-alpine3.22`, `2.10.29-alpine`, `2.10-alpine`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.10.x/alpine3.22/Dockerfile) + +- [`2.10.29-scratch`, `2.10-scratch`, `2.10.29-linux`, `2.10-linux`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.10.x/scratch/Dockerfile) + +- [`2.10.29-windowsservercore-ltsc2022`, `2.10-windowsservercore-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.10.x/windowsservercore-ltsc2022/Dockerfile) + +- [`2.10.29-nanoserver-ltsc2022`, `2.10-nanoserver-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.10.x/nanoserver-ltsc2022/Dockerfile) ## Shared Tags -- `2.10.5`, `2.10`: - - [`2.10.5-scratch`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/scratch/Dockerfile) - - [`2.10.5-nanoserver-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/nanoserver-1809/Dockerfile) -- `2`, `latest`: - - [`2.10.5-scratch`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/scratch/Dockerfile) - - [`2.10.5-nanoserver-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/nanoserver-1809/Dockerfile) - - [`2.9.24-scratch`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.9.x/scratch/Dockerfile) -- `2.10.5-windowsservercore`, `2.10-windowsservercore`, `2-windowsservercore`, `windowsservercore`: - - [`2.10.5-windowsservercore-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/windowsservercore-1809/Dockerfile) -- `2.10.5-nanoserver`, `2.10-nanoserver`, `2-nanoserver`, `nanoserver`: - - [`2.10.5-nanoserver-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.10.x/nanoserver-1809/Dockerfile) -- `2.9.24`, `2.9`: - - [`2.9.24-scratch`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.9.x/scratch/Dockerfile) -- `2.9.24-windowsservercore`, `2.9-windowsservercore`: - - [`2.9.24-windowsservercore-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.9.x/windowsservercore-1809/Dockerfile) -- `2.9.24-nanoserver`, `2.9-nanoserver`: - - [`2.9.24-nanoserver-1809`](https://github.com/nats-io/nats-docker/blob/9b57561ad548795c91c8af89f530f443827b1982/2.9.x/nanoserver-1809/Dockerfile) +- `2.11.4`, `2.11`, `2`, `latest`: + + - [`2.11.4-scratch`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.11.x/scratch/Dockerfile) + - [`2.11.4-nanoserver-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.11.x/nanoserver-ltsc2022/Dockerfile) + +- `2.11.4-windowsservercore`, `2.11-windowsservercore`, `2-windowsservercore`, `windowsservercore`: + + - [`2.11.4-windowsservercore-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.11.x/windowsservercore-ltsc2022/Dockerfile) + +- `2.11.4-nanoserver`, `2.11-nanoserver`, `2-nanoserver`, `nanoserver`: + + - [`2.11.4-nanoserver-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.11.x/nanoserver-ltsc2022/Dockerfile) + +- `2.10.29`, `2.10`: + + - [`2.10.29-scratch`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.10.x/scratch/Dockerfile) + - [`2.10.29-nanoserver-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.10.x/nanoserver-ltsc2022/Dockerfile) + +- `2.10.29-windowsservercore`, `2.10-windowsservercore`: + + - [`2.10.29-windowsservercore-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.10.x/windowsservercore-ltsc2022/Dockerfile) + +- `2.10.29-nanoserver`, `2.10-nanoserver`: + + - [`2.10.29-nanoserver-ltsc2022`](https://github.com/nats-io/nats-docker/blob/09997444258bc1900ab5db78dd781915eed04885/2.10.x/nanoserver-ltsc2022/Dockerfile) # Quick reference (cont.) @@ -63,7 +78,7 @@ WARNING: [https://github.com/nats-io/nats-docker/issues](https://github.com/nats-io/nats-docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/nats/), [`arm32v6`](https://hub.docker.com/r/arm32v6/nats/), [`arm32v7`](https://hub.docker.com/r/arm32v7/nats/), [`arm64v8`](https://hub.docker.com/r/arm64v8/nats/), [`windows-amd64`](https://hub.docker.com/r/winamd64/nats/) + [`amd64`](https://hub.docker.com/r/amd64/nats/), [`arm32v6`](https://hub.docker.com/r/arm32v6/nats/), [`arm32v7`](https://hub.docker.com/r/arm32v7/nats/), [`arm64v8`](https://hub.docker.com/r/arm64v8/nats/), [`ppc64le`](https://hub.docker.com/r/ppc64le/nats/), [`s390x`](https://hub.docker.com/r/s390x/nats/), [`windows-amd64`](https://hub.docker.com/r/winamd64/nats/) - **Published image artifact details**: [repo-info repo's `repos/nats/` directory](https://github.com/docker-library/repo-info/blob/master/repos/nats) ([history](https://github.com/docker-library/repo-info/commits/master/repos/nats)) @@ -105,6 +120,15 @@ WARNING: # # docker run -p 5555:4444 nats -p 4444 # +# To enable NATS JetStream, use the -js flag: +# +# docker run -p 4222:4222 nats -js +# +# And, to persist JetStream data to a volume you can use the -v and -sd flags. +# Keep in mind that -v is a Docker flag, while -js and -sd are NATS Server flags: +# +# docker run -p 4222:4222 -v nats:/data nats -js -sd /data +# # Check "docker run" for more information. $ docker run -d --name nats-main -p 4222:4222 -p 6222:6222 -p 8222:8222 nats diff --git a/nats/content.md b/nats/content.md index b67d8f074f58..20f4fce94327 100644 --- a/nats/content.md +++ b/nats/content.md @@ -27,6 +27,15 @@ # # docker run -p 5555:4444 %%IMAGE%% -p 4444 # +# To enable NATS JetStream, use the -js flag: +# +# docker run -p 4222:4222 %%IMAGE%% -js +# +# And, to persist JetStream data to a volume you can use the -v and -sd flags. +# Keep in mind that -v is a Docker flag, while -js and -sd are NATS Server flags: +# +# docker run -p 4222:4222 -v nats:/data %%IMAGE%% -js -sd /data +# # Check "docker run" for more information. $ docker run -d --name nats-main -p 4222:4222 -p 6222:6222 -p 8222:8222 %%IMAGE%% diff --git a/nats/metadata.json b/nats/metadata.json new file mode 100644 index 000000000000..66ae22756c7e --- /dev/null +++ b/nats/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "message-queues" + ] + } +} diff --git a/neo4j/README.md b/neo4j/README.md index e0fcb86ccf05..24e7e35df6b7 100644 --- a/neo4j/README.md +++ b/neo4j/README.md @@ -24,12 +24,25 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.13.0-community-bullseye`, `5.13-community-bullseye`, `5-community-bullseye`, `5.13.0-community`, `5.13-community`, `5-community`, `5.13.0-bullseye`, `5.13-bullseye`, `5-bullseye`, `5.13.0`, `5.13`, `5`, `community-bullseye`, `community`, `bullseye`, `latest`](https://github.com/neo4j/docker-neo4j-publish/blob/63788eb70d504c77dee3cc478ee140eb4e056e6a/5.13.0/bullseye/community/Dockerfile) -- [`5.13.0-enterprise-bullseye`, `5.13-enterprise-bullseye`, `5-enterprise-bullseye`, `5.13.0-enterprise`, `5.13-enterprise`, `5-enterprise`, `enterprise-bullseye`, `enterprise`](https://github.com/neo4j/docker-neo4j-publish/blob/63788eb70d504c77dee3cc478ee140eb4e056e6a/5.13.0/bullseye/enterprise/Dockerfile) -- [`5.13.0-community-ubi8`, `5.13-community-ubi8`, `5-community-ubi8`, `5.13.0-ubi8`, `5.13-ubi8`, `5-ubi8`, `community-ubi8`, `ubi8`](https://github.com/neo4j/docker-neo4j-publish/blob/63788eb70d504c77dee3cc478ee140eb4e056e6a/5.13.0/ubi8/community/Dockerfile) -- [`5.13.0-enterprise-ubi8`, `5.13-enterprise-ubi8`, `5-enterprise-ubi8`, `enterprise-ubi8`](https://github.com/neo4j/docker-neo4j-publish/blob/63788eb70d504c77dee3cc478ee140eb4e056e6a/5.13.0/ubi8/enterprise/Dockerfile) -- [`4.4.27`, `4.4.27-community`, `4.4`, `4.4-community`](https://github.com/neo4j/docker-neo4j-publish/blob/6c15231abd6294f0a736b4a46f59d258dea7f672/4.4.27/bullseye/community/Dockerfile) -- [`4.4.27-enterprise`, `4.4-enterprise`](https://github.com/neo4j/docker-neo4j-publish/blob/6c15231abd6294f0a736b4a46f59d258dea7f672/4.4.27/bullseye/enterprise/Dockerfile) +- [`2025.05.0-community-bullseye`, `2025.05-community-bullseye`, `2025-community-bullseye`, `2025.05.0-community`, `2025.05-community`, `2025-community`, `2025.05.0-bullseye`, `2025.05-bullseye`, `2025-bullseye`, `2025.05.0`, `2025.05`, `2025`, `community-bullseye`, `community`, `bullseye`, `latest`](https://github.com/neo4j/docker-neo4j-publish/blob/e9e870d30bcb8e30daca71ca31d809dd018645ea/2025.05.0/bullseye/community/Dockerfile) + +- [`2025.05.0-enterprise-bullseye`, `2025.05-enterprise-bullseye`, `2025-enterprise-bullseye`, `2025.05.0-enterprise`, `2025.05-enterprise`, `2025-enterprise`, `enterprise-bullseye`, `enterprise`](https://github.com/neo4j/docker-neo4j-publish/blob/e9e870d30bcb8e30daca71ca31d809dd018645ea/2025.05.0/bullseye/enterprise/Dockerfile) + +- [`2025.05.0-community-ubi9`, `2025.05-community-ubi9`, `2025-community-ubi9`, `2025.05.0-ubi9`, `2025.05-ubi9`, `2025-ubi9`, `community-ubi9`, `ubi9`](https://github.com/neo4j/docker-neo4j-publish/blob/e9e870d30bcb8e30daca71ca31d809dd018645ea/2025.05.0/ubi9/community/Dockerfile) + +- [`2025.05.0-enterprise-ubi9`, `2025.05-enterprise-ubi9`, `2025-enterprise-ubi9`, `enterprise-ubi9`](https://github.com/neo4j/docker-neo4j-publish/blob/e9e870d30bcb8e30daca71ca31d809dd018645ea/2025.05.0/ubi9/enterprise/Dockerfile) + +- [`5.26.8-community-bullseye`, `5.26-community-bullseye`, `5-community-bullseye`, `5.26.8-community`, `5.26-community`, `5-community`, `5.26.8-bullseye`, `5.26-bullseye`, `5-bullseye`, `5.26.8`, `5.26`, `5`](https://github.com/neo4j/docker-neo4j-publish/blob/7bcd74b9f4aaee7a0a271aa0f9b0e9c4723d3280/5.26.8/bullseye/community/Dockerfile) + +- [`5.26.8-enterprise-bullseye`, `5.26-enterprise-bullseye`, `5-enterprise-bullseye`, `5.26.8-enterprise`, `5.26-enterprise`, `5-enterprise`](https://github.com/neo4j/docker-neo4j-publish/blob/7bcd74b9f4aaee7a0a271aa0f9b0e9c4723d3280/5.26.8/bullseye/enterprise/Dockerfile) + +- [`5.26.8-community-ubi9`, `5.26-community-ubi9`, `5-community-ubi9`, `5.26.8-ubi9`, `5.26-ubi9`, `5-ubi9`](https://github.com/neo4j/docker-neo4j-publish/blob/7bcd74b9f4aaee7a0a271aa0f9b0e9c4723d3280/5.26.8/ubi9/community/Dockerfile) + +- [`5.26.8-enterprise-ubi9`, `5.26-enterprise-ubi9`, `5-enterprise-ubi9`](https://github.com/neo4j/docker-neo4j-publish/blob/7bcd74b9f4aaee7a0a271aa0f9b0e9c4723d3280/5.26.8/ubi9/enterprise/Dockerfile) + +- [`4.4.44`, `4.4.44-community`, `4.4`, `4.4-community`](https://github.com/neo4j/docker-neo4j-publish/blob/a0fc315f717639f19237bffd1ef1b9b4ecab4182/4.4.44/bullseye/community/Dockerfile) + +- [`4.4.44-enterprise`, `4.4-enterprise`](https://github.com/neo4j/docker-neo4j-publish/blob/a0fc315f717639f19237bffd1ef1b9b4ecab4182/4.4.44/bullseye/enterprise/Dockerfile) # Quick reference (cont.) diff --git a/neo4j/metadata.json b/neo4j/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/neo4j/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/neurodebian/README.md b/neurodebian/README.md index 03a4c860ac01..c7bb7b6d3081 100644 --- a/neurodebian/README.md +++ b/neurodebian/README.md @@ -24,20 +24,17 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`bionic`, `nd18.04`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/bionic/Dockerfile) -- [`bionic-non-free`, `nd18.04-non-free`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/bionic-non-free/Dockerfile) -- [`focal`, `nd20.04`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/focal/Dockerfile) -- [`focal-non-free`, `nd20.04-non-free`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/focal-non-free/Dockerfile) -- [`jammy`, `nd22.04`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/jammy/Dockerfile) -- [`jammy-non-free`, `nd22.04-non-free`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/jammy-non-free/Dockerfile) -- [`buster`, `nd100`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/buster/Dockerfile) -- [`buster-non-free`, `nd100-non-free`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/buster-non-free/Dockerfile) -- [`bullseye`, `nd110`, `latest`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/bullseye/Dockerfile) -- [`bullseye-non-free`, `nd110-non-free`, `non-free`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/bullseye-non-free/Dockerfile) -- [`bookworm`, `nd120`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/bookworm/Dockerfile) -- [`bookworm-non-free`, `nd120-non-free`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/bookworm-non-free/Dockerfile) -- [`sid`, `nd`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/sid/Dockerfile) -- [`sid-non-free`, `nd-non-free`](https://github.com/neurodebian/dockerfiles/blob/1da9308291ad33a33447519ec1835bb3e37acebc/dockerfiles/sid-non-free/Dockerfile) +- [`jammy`, `nd22.04`](https://github.com/neurodebian/dockerfiles/blob/89ca52860d80889fd878392a29150e46d9d91a71/dockerfiles/jammy/Dockerfile) + +- [`jammy-non-free`, `nd22.04-non-free`](https://github.com/neurodebian/dockerfiles/blob/89ca52860d80889fd878392a29150e46d9d91a71/dockerfiles/jammy-non-free/Dockerfile) + +- [`bullseye`, `nd110`](https://github.com/neurodebian/dockerfiles/blob/89ca52860d80889fd878392a29150e46d9d91a71/dockerfiles/bullseye/Dockerfile) + +- [`bullseye-non-free`, `nd110-non-free`](https://github.com/neurodebian/dockerfiles/blob/89ca52860d80889fd878392a29150e46d9d91a71/dockerfiles/bullseye-non-free/Dockerfile) + +- [`bookworm`, `nd120`, `latest`](https://github.com/neurodebian/dockerfiles/blob/89ca52860d80889fd878392a29150e46d9d91a71/dockerfiles/bookworm/Dockerfile) + +- [`bookworm-non-free`, `nd120-non-free`, `non-free`](https://github.com/neurodebian/dockerfiles/blob/89ca52860d80889fd878392a29150e46d9d91a71/dockerfiles/bookworm-non-free/Dockerfile) # Quick reference (cont.) diff --git a/neurodebian/metadata.json b/neurodebian/metadata.json new file mode 100644 index 000000000000..2b3b7cd7c11f --- /dev/null +++ b/neurodebian/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "data-science" + ] + } +} diff --git a/nextcloud/README.md b/nextcloud/README.md index 4cfdd7155ce5..71206d8939d5 100644 --- a/nextcloud/README.md +++ b/nextcloud/README.md @@ -16,7 +16,7 @@ WARNING: # IMPORTANT NOTE -⚠ This image is not officially supported by Nextcloud GmbH, use at your own risk. Use the [All-in-One docker image](https://github.com/nextcloud/all-in-one#nextcloud-all-in-one) for easier deployment. +⚠️⚠️⚠️ This image is maintained by community volunteers and designed for expert use. For quick and easy deployment that supports the full set of Nextcloud Hub features, use the [Nextcloud All-in-One docker container](https://github.com/nextcloud/all-in-one#nextcloud-all-in-one) maintained by Nextcloud GmbH. # Quick reference @@ -28,15 +28,23 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`25.0.13-apache`, `25.0-apache`, `25-apache`, `25.0.13`, `25.0`, `25`](https://github.com/nextcloud/docker/blob/4c24a2ae8ed0b1c6dff7aeddb6fb2d8e07d87f3e/25/apache/Dockerfile) -- [`25.0.13-fpm`, `25.0-fpm`, `25-fpm`](https://github.com/nextcloud/docker/blob/4c24a2ae8ed0b1c6dff7aeddb6fb2d8e07d87f3e/25/fpm/Dockerfile) -- [`25.0.13-fpm-alpine`, `25.0-fpm-alpine`, `25-fpm-alpine`](https://github.com/nextcloud/docker/blob/4c24a2ae8ed0b1c6dff7aeddb6fb2d8e07d87f3e/25/fpm-alpine/Dockerfile) -- [`26.0.8-apache`, `26.0-apache`, `26-apache`, `26.0.8`, `26.0`, `26`](https://github.com/nextcloud/docker/blob/4c24a2ae8ed0b1c6dff7aeddb6fb2d8e07d87f3e/26/apache/Dockerfile) -- [`26.0.8-fpm`, `26.0-fpm`, `26-fpm`](https://github.com/nextcloud/docker/blob/4c24a2ae8ed0b1c6dff7aeddb6fb2d8e07d87f3e/26/fpm/Dockerfile) -- [`26.0.8-fpm-alpine`, `26.0-fpm-alpine`, `26-fpm-alpine`](https://github.com/nextcloud/docker/blob/4c24a2ae8ed0b1c6dff7aeddb6fb2d8e07d87f3e/26/fpm-alpine/Dockerfile) -- [`27.1.3-apache`, `27.1-apache`, `27-apache`, `apache`, `stable-apache`, `production-apache`, `27.1.3`, `27.1`, `27`, `latest`, `stable`, `production`](https://github.com/nextcloud/docker/blob/4c24a2ae8ed0b1c6dff7aeddb6fb2d8e07d87f3e/27/apache/Dockerfile) -- [`27.1.3-fpm`, `27.1-fpm`, `27-fpm`, `fpm`, `stable-fpm`, `production-fpm`](https://github.com/nextcloud/docker/blob/4c24a2ae8ed0b1c6dff7aeddb6fb2d8e07d87f3e/27/fpm/Dockerfile) -- [`27.1.3-fpm-alpine`, `27.1-fpm-alpine`, `27-fpm-alpine`, `fpm-alpine`, `stable-fpm-alpine`, `production-fpm-alpine`](https://github.com/nextcloud/docker/blob/4c24a2ae8ed0b1c6dff7aeddb6fb2d8e07d87f3e/27/fpm-alpine/Dockerfile) +- [`29.0.16-apache`, `29.0-apache`, `29-apache`, `29.0.16`, `29.0`, `29`](https://github.com/nextcloud/docker/blob/f130178136c00a6e6951591510bcc059490e4c54/29/apache/Dockerfile) + +- [`29.0.16-fpm`, `29.0-fpm`, `29-fpm`](https://github.com/nextcloud/docker/blob/f130178136c00a6e6951591510bcc059490e4c54/29/fpm/Dockerfile) + +- [`29.0.16-fpm-alpine`, `29.0-fpm-alpine`, `29-fpm-alpine`](https://github.com/nextcloud/docker/blob/3d950bcf0c163a74d12d1d9476fc13f725623ad7/29/fpm-alpine/Dockerfile) + +- [`30.0.12-apache`, `30.0-apache`, `30-apache`, `30.0.12`, `30.0`, `30`](https://github.com/nextcloud/docker/blob/a2233a9553bed3b7a9ab8f6e3d7132b5f008a737/30/apache/Dockerfile) + +- [`30.0.12-fpm`, `30.0-fpm`, `30-fpm`](https://github.com/nextcloud/docker/blob/a2233a9553bed3b7a9ab8f6e3d7132b5f008a737/30/fpm/Dockerfile) + +- [`30.0.12-fpm-alpine`, `30.0-fpm-alpine`, `30-fpm-alpine`](https://github.com/nextcloud/docker/blob/3d950bcf0c163a74d12d1d9476fc13f725623ad7/30/fpm-alpine/Dockerfile) + +- [`31.0.6-apache`, `31.0-apache`, `31-apache`, `apache`, `stable-apache`, `production-apache`, `31.0.6`, `31.0`, `31`, `latest`, `stable`, `production`](https://github.com/nextcloud/docker/blob/a2233a9553bed3b7a9ab8f6e3d7132b5f008a737/31/apache/Dockerfile) + +- [`31.0.6-fpm`, `31.0-fpm`, `31-fpm`, `fpm`, `stable-fpm`, `production-fpm`](https://github.com/nextcloud/docker/blob/a2233a9553bed3b7a9ab8f6e3d7132b5f008a737/31/fpm/Dockerfile) + +- [`31.0.6-fpm-alpine`, `31.0-fpm-alpine`, `31-fpm-alpine`, `fpm-alpine`, `stable-fpm-alpine`, `production-fpm-alpine`](https://github.com/nextcloud/docker/blob/3d950bcf0c163a74d12d1d9476fc13f725623ad7/31/fpm-alpine/Dockerfile) # Quick reference (cont.) @@ -44,7 +52,7 @@ WARNING: [https://github.com/nextcloud/docker/issues](https://github.com/nextcloud/docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/nextcloud/), [`arm32v5`](https://hub.docker.com/r/arm32v5/nextcloud/), [`arm32v6`](https://hub.docker.com/r/arm32v6/nextcloud/), [`arm32v7`](https://hub.docker.com/r/arm32v7/nextcloud/), [`arm64v8`](https://hub.docker.com/r/arm64v8/nextcloud/), [`i386`](https://hub.docker.com/r/i386/nextcloud/), [`mips64le`](https://hub.docker.com/r/mips64le/nextcloud/), [`ppc64le`](https://hub.docker.com/r/ppc64le/nextcloud/), [`s390x`](https://hub.docker.com/r/s390x/nextcloud/) + [`amd64`](https://hub.docker.com/r/amd64/nextcloud/), [`arm32v5`](https://hub.docker.com/r/arm32v5/nextcloud/), [`arm32v6`](https://hub.docker.com/r/arm32v6/nextcloud/), [`arm32v7`](https://hub.docker.com/r/arm32v7/nextcloud/), [`arm64v8`](https://hub.docker.com/r/arm64v8/nextcloud/), [`i386`](https://hub.docker.com/r/i386/nextcloud/), [`mips64le`](https://hub.docker.com/r/mips64le/nextcloud/), [`ppc64le`](https://hub.docker.com/r/ppc64le/nextcloud/), [`riscv64`](https://hub.docker.com/r/riscv64/nextcloud/), [`s390x`](https://hub.docker.com/r/s390x/nextcloud/) - **Published image artifact details**: [repo-info repo's `repos/nextcloud/` directory](https://github.com/docker-library/repo-info/blob/master/repos/nextcloud) ([history](https://github.com/docker-library/repo-info/commits/master/repos/nextcloud)) @@ -85,21 +93,21 @@ Now you can access Nextcloud at http://localhost:8080/ from your host system. ## Using the fpm image -To use the fpm image, you need an additional web server, such as [nginx](https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html), that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). In both cases you don't want to map the fpm port to your host. +To use the fpm image, you need an additional web server, such as [nginx](https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html), that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want to use another container or your host as proxy. If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `compose.yaml` file). In both cases you don't want to map the fpm port to your host. ```console $ docker run -d nextcloud:fpm ``` -As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the Docker Compose section. ## Using an external database -By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the Docker Compose section. ## Persistent data -The Nextcloud installation and all data beyond what lives in the database (file uploads, etc.) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc.) are stored in the [unnamed docker volume](https://docs.docker.com/storage/volumes/) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. @@ -107,22 +115,24 @@ Nextcloud: - `/var/www/html/` folder where all Nextcloud data lives - ```console - $ docker run -d \ - -v nextcloud:/var/www/html \ - nextcloud - ``` +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` Database: - `/var/lib/mysql` MySQL / MariaDB Data - `/var/lib/postgresql/data` PostgreSQL Data - ```console - $ docker run -d \ - -v db:/var/lib/mysql \ - mariadb:10.6 - ``` +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb:10.6 +``` + +### Additional volumes If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. @@ -138,14 +148,23 @@ If you want to use named volumes for all of these, it would look like this: ```console $ docker run -d \ - -v nextcloud:/var/www/html \ - -v apps:/var/www/html/custom_apps \ - -v config:/var/www/html/config \ - -v data:/var/www/html/data \ - -v theme:/var/www/html/themes/ \ - nextcloud +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud ``` +### Custom volumes + +If mounting additional volumes under `/var/www/html`, you should consider: + +- Confirming that [upgrade.exclude](https://github.com/nextcloud/docker/blob/master/upgrade.exclude) contains the files and folders that should persist during installation and upgrades; or +- Mounting storage volumes to locations outside of `/var/www/html`. + +> You should note that data inside the main folder (`/var/www/html`) will be overridden/removed during installation and upgrades, unless listed in [upgrade.exclude](https://github.com/nextcloud/docker/blob/master/upgrade.exclude). The additional volumes officially supported are already in that list, but custom volumes will need to be added by you. We suggest mounting custom storage volumes outside of `/var/www/html` and if possible read-only so that making this adjustment is unnecessary. If you must do so, however, you may build a custom image with a modified `/upgrade.exclude` file that incorporates your custom volume(s). + ## Using the Nextcloud command-line interface To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): @@ -154,10 +173,10 @@ To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/ $ docker exec --user www-data CONTAINER_ID php occ ``` -or for docker-compose: +or for `docker compose`: ```console -$ docker-compose exec --user www-data app php occ +$ docker compose exec --user www-data app php occ ``` ## Auto configuration via environment variables @@ -182,7 +201,7 @@ The Nextcloud image supports auto configuration via environment variables. You c - `POSTGRES_PASSWORD` Password for the database user using postgres. - `POSTGRES_HOST` Hostname of the database server using postgres. -As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. See [Docker secrets](#docker=secrets) section below. +As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. See [Docker secrets](#docker-secrets) section below. If you set any group of values (i.e. all of `MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_HOST`), they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): @@ -201,15 +220,11 @@ The install and update script is only triggered when a default command is used ( - `NEXTCLOUD_UPDATE` (default: `0`) -If you share your html folder with multiple docker containers, you might want to avoid multiple processes updating the same shared volume - -- `NEXTCLOUD_INIT_LOCK` (not set by default) Set it to true to enable initialization locking. Other containers will wait for the current process to finish updating the html volume to continue. - -You might also want to make sure the htaccess is up to date after each container update. Especially on multiple swarm nodes as any discrepancy will make your server unusable. +You might want to make sure the htaccess is up to date after each container update. Especially on multiple swarm nodes as any discrepancy will make your server unusable. - `NEXTCLOUD_INIT_HTACCESS` (not set by default) Set it to true to enable run `occ maintenance:update:htaccess` after container initialization. -If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your Compose file. To inform Nextcloud about the Redis container, pass in the following parameters: - `REDIS_HOST` (not set by default) Name of Redis container - `REDIS_HOST_PORT` (default: `6379`) Optional port for Redis, only use for external Redis servers that run on non-standard ports. @@ -225,24 +240,28 @@ To use an external SMTP server, you have to provide the connection details. To c - `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. - `SMTP_NAME` (empty by default): The username for the authentication. - `SMTP_PASSWORD` (empty by default): The password for the authentication. -- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_FROM_ADDRESS` (not set by default): Set the local-part for the 'from' field in the emails sent by Nextcloud. - `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. +At least `SMTP_HOST`, `MAIL_FROM_ADDRESS` and `MAIL_DOMAIN` must be set for the configurations to be applied. + Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. To use an external S3 compatible object store as primary storage, set the following variables: -- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server - `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over - `OBJECTSTORE_S3_KEY`: AWS style access key - `OBJECTSTORE_S3_SECRET`: AWS style secret access key -- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_STORAGE_CLASS`: The storage class to use when adding objects to the bucket - `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server -- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. - `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 - `OBJECTSTORE_S3_LEGACYAUTH` (default: `false`): Not required for AWS S3 - `OBJECTSTORE_S3_OBJECT_PREFIX` (default: `urn:oid:`): Prefix to prepend to the fileid - `OBJECTSTORE_S3_AUTOCREATE` (default: `true`): Create the container if it does not exist +- `OBJECTSTORE_S3_SSE_C_KEY` (not set by default): Base64 encoded key with a maximum length of 32 bytes for server side encryption (SSE-C) Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. @@ -266,6 +285,43 @@ To customize other PHP limits you can simply change the following variables: - `PHP_MEMORY_LIMIT` (default `512M`) This sets the maximum amount of memory in bytes that a script is allowed to allocate. This is meant to help prevent poorly written scripts from eating up all available memory but it can prevent normal operation if set too tight. - `PHP_UPLOAD_LIMIT` (default `512M`) This sets the upload limit (`post_max_size` and `upload_max_filesize`) for big files. Note that you may have to change other limits depending on your client, webserver or operating system. Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html) for more information. +To customize Apache max file upload limit you can change the following variable: + +- `APACHE_BODY_LIMIT` (default `1073741824` [1GiB]) This restricts the total size of the HTTP request body sent from the client. It specifies the number of *bytes* that are allowed in a request body. A value of **0** means **unlimited**. Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html#apache) for more information. + +## Auto configuration via hook folders + +There are 5 hooks + +- `pre-installation` Executed before the Nextcloud is installed/initiated +- `post-installation` Executed after the Nextcloud is installed/initiated +- `pre-upgrade` Executed before the Nextcloud is upgraded +- `post-upgrade` Executed after the Nextcloud is upgraded +- `before-starting` Executed before the Nextcloud starts + +To use the hooks triggered by the `entrypoint` script, either + +- Added your script(s) to the individual of the hook folder(s), which are located at the path `/docker-entrypoint-hooks.d` in the container +- Use volume(s) if you want to use script from the host system inside the container, see example. + +**Note:** Only the script(s) located in a hook folder (not sub-folders), ending with `.sh` and marked as executable, will be executed. + +**Example:** Mount using volumes + +```yaml +... + app: + image: nextcloud:stable + + volumes: + - ./app-hooks/pre-installation:/docker-entrypoint-hooks.d/pre-installation + - ./app-hooks/post-installation:/docker-entrypoint-hooks.d/post-installation + - ./app-hooks/pre-upgrade:/docker-entrypoint-hooks.d/pre-upgrade + - ./app-hooks/post-upgrade:/docker-entrypoint-hooks.d/post-upgrade + - ./app-hooks/before-starting:/docker-entrypoint-hooks.d/before-starting +... +``` + ## Using the apache image behind a reverse proxy and auto configure server host and protocol The apache image will replace the remote addr (IP address visible to Nextcloud) with the IP address from `X-Real-IP` if the request is coming from a proxy in `10.0.0.0/8`, `172.16.0.0/12` or `192.168.0.0/16` by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client IP (`HTTP_X_FORWARDED_FOR`) from a trusted proxy, then disable rewrite IP and add the reverse proxy's IP address to `TRUSTED_PROXIES`. @@ -285,9 +341,9 @@ Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admi Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. -# Running this image with docker-compose +# Running this image with Docker Compose -The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. +The easiest way to get a fully featured and functional setup is using a `compose.yaml` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. @@ -298,8 +354,6 @@ This version will use the apache image and add a mariaDB container. The volumes Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. ```yaml -version: '2' - volumes: nextcloud: db: @@ -333,19 +387,17 @@ services: - MYSQL_HOST=db ``` -Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. +Then run `docker compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. ## Base version - FPM -When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option. The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). As this setup does **not include encryption**, it should be run behind a proxy. Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. ```yaml -version: '2' - volumes: nextcloud: db: @@ -389,15 +441,13 @@ services: - app ``` -Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. +Then run `docker compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. # Docker Secrets As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in `/run/secrets/` files. For example: ```yaml -version: '3.2' - services: db: image: postgres @@ -453,7 +503,7 @@ secrets: file: ./postgres_user.txt # put postgresql username in this file ``` -Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DATABASE`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`, `REDIS_HOST_PASSWORD` and `SMTP_PASSWORD`. +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DATABASE`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`, `REDIS_HOST_PASSWORD`, `SMTP_PASSWORD`, `OBJECTSTORE_S3_KEY`, and `OBJECTSTORE_S3_SECRET`. If you set any group of values (i.e. all of `MYSQL_DATABASE_FILE`, `MYSQL_USER_FILE`, `MYSQL_PASSWORD_FILE`, `MYSQL_HOST`), the script will not use the corresponding group of environment variables (`MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_HOST`). @@ -471,7 +521,7 @@ In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) sec # First use -When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `compose.yaml` file. # Update to a newer version @@ -490,11 +540,11 @@ $ docker run -d nextcloud Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. -When using docker-compose your compose file takes care of your configuration, so you just have to run: +When using Docker Compose, your `compose.yaml` file takes care of your configuration, so you just have to run: ```console -$ docker-compose pull -$ docker-compose up -d +$ docker compose pull +$ docker compose up -d ``` # Adding Features @@ -509,7 +559,7 @@ RUN ... The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. -If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) +If you use your own Dockerfile, you need to configure your `compose.yaml` file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the `compose.yaml` file) ```yaml app: @@ -542,11 +592,11 @@ docker build -t your-name --pull . docker run -d your-name ``` -or for docker-compose: +Or for Docker Compose: ```console -docker-compose build --pull -docker-compose up -d +docker compose build --pull +docker compose up -d ``` The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. @@ -555,25 +605,25 @@ The `--pull` option tells docker to look for new versions of the base image. The You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: -1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +1. Define your whole Nextcloud infrastructure in a `compose.yaml` file and run it with `docker compose up -d` to get the base installation, volumes and database. Work from there. 2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) - To import from a MySQL dump use the following commands - ```console - docker cp ./database.dmp nextcloud_db_1:/dmp - docker-compose exec db sh -c "mysql --user USER --password PASSWORD nextcloud < /dmp" - docker-compose exec db rm /dmp - ``` + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker compose exec db sh -c "mysql --user USER --password PASSWORD nextcloud < /dmp" + docker compose exec db rm /dmp + ``` - To import from a PostgreSQL dump use to following commands - ```console - docker cp ./database.dmp nextcloud_db_1:/dmp - docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" - docker-compose exec db rm /dmp - ``` + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker compose exec db rm /dmp + ``` 3. Edit your config.php @@ -581,15 +631,15 @@ You're already using Nextcloud and want to switch to docker? Great! Here are som - In case of MySQL database - ```php - 'dbhost' => 'db:3306', - ``` + ```php + 'dbhost' => 'db:3306', + ``` - In case of PostgreSQL database - ```php - 'dbhost' => 'db:5432', - ``` + ```php + 'dbhost' => 'db:5432', + ``` 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these @@ -607,16 +657,16 @@ You're already using Nextcloud and want to switch to docker? Great! Here are som ```php 'apps_paths' => array ( - 0 => array ( - 'path' => '/var/www/html/apps', - 'url' => '/apps', - 'writable' => false, - ), - 1 => array ( - 'path' => '/var/www/html/custom_apps', - 'url' => '/custom_apps', - 'writable' => true, - ), + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), ), ``` @@ -630,11 +680,11 @@ You're already using Nextcloud and want to switch to docker? Great! Here are som ```console docker cp ./data/ nextcloud_app_1:/var/www/html/ - docker-compose exec app chown -R www-data:www-data /var/www/html/data + docker compose exec app chown -R www-data:www-data /var/www/html/data docker cp ./theming/ nextcloud_app_1:/var/www/html/ - docker-compose exec app chown -R www-data:www-data /var/www/html/theming + docker compose exec app chown -R www-data:www-data /var/www/html/theming docker cp ./config/config.php nextcloud_app_1:/var/www/html/config - docker-compose exec app chown -R www-data:www-data /var/www/html/config + docker compose exec app chown -R www-data:www-data /var/www/html/config ``` If you want to preserve the metadata of your files like timestamps, copy the data directly on the host to the named volume using plain `cp` like this: @@ -647,7 +697,7 @@ You're already using Nextcloud and want to switch to docker? Great! Here are som ```console docker cp ./custom_apps/ nextcloud_data:/var/www/html/ - docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps + docker compose exec app chown -R www-data:www-data /var/www/html/custom_apps ``` # Questions / Issues diff --git a/nextcloud/content.md b/nextcloud/content.md index 9c25a180c925..a290b3e39fa7 100644 --- a/nextcloud/content.md +++ b/nextcloud/content.md @@ -26,21 +26,21 @@ Now you can access Nextcloud at http://localhost:8080/ from your host system. ## Using the fpm image -To use the fpm image, you need an additional web server, such as [nginx](https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html), that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). In both cases you don't want to map the fpm port to your host. +To use the fpm image, you need an additional web server, such as [nginx](https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html), that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want to use another container or your host as proxy. If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `compose.yaml` file). In both cases you don't want to map the fpm port to your host. ```console $ docker run -d %%IMAGE%%:fpm ``` -As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the Docker Compose section. ## Using an external database -By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the Docker Compose section. ## Persistent data -The Nextcloud installation and all data beyond what lives in the database (file uploads, etc.) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc.) are stored in the [unnamed docker volume](https://docs.docker.com/storage/volumes/) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. @@ -48,22 +48,24 @@ Nextcloud: - `/var/www/html/` folder where all Nextcloud data lives - ```console - $ docker run -d \ - -v nextcloud:/var/www/html \ - %%IMAGE%% - ``` +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +%%IMAGE%% +``` Database: - `/var/lib/mysql` MySQL / MariaDB Data - `/var/lib/postgresql/data` PostgreSQL Data - ```console - $ docker run -d \ - -v db:/var/lib/mysql \ - mariadb:10.6 - ``` +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb:10.6 +``` + +### Additional volumes If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. @@ -79,14 +81,23 @@ If you want to use named volumes for all of these, it would look like this: ```console $ docker run -d \ - -v nextcloud:/var/www/html \ - -v apps:/var/www/html/custom_apps \ - -v config:/var/www/html/config \ - -v data:/var/www/html/data \ - -v theme:/var/www/html/themes/ \ - %%IMAGE%% +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +%%IMAGE%% ``` +### Custom volumes + +If mounting additional volumes under `/var/www/html`, you should consider: + +- Confirming that [upgrade.exclude](https://github.com/nextcloud/docker/blob/master/upgrade.exclude) contains the files and folders that should persist during installation and upgrades; or +- Mounting storage volumes to locations outside of `/var/www/html`. + +> You should note that data inside the main folder (`/var/www/html`) will be overridden/removed during installation and upgrades, unless listed in [upgrade.exclude](https://github.com/nextcloud/docker/blob/master/upgrade.exclude). The additional volumes officially supported are already in that list, but custom volumes will need to be added by you. We suggest mounting custom storage volumes outside of `/var/www/html` and if possible read-only so that making this adjustment is unnecessary. If you must do so, however, you may build a custom image with a modified `/upgrade.exclude` file that incorporates your custom volume(s). + ## Using the Nextcloud command-line interface To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): @@ -95,10 +106,10 @@ To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/ $ docker exec --user www-data CONTAINER_ID php occ ``` -or for docker-compose: +or for `docker compose`: ```console -$ docker-compose exec --user www-data app php occ +$ docker compose exec --user www-data app php occ ``` ## Auto configuration via environment variables @@ -123,7 +134,7 @@ The Nextcloud image supports auto configuration via environment variables. You c - `POSTGRES_PASSWORD` Password for the database user using postgres. - `POSTGRES_HOST` Hostname of the database server using postgres. -As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. See [Docker secrets](#docker=secrets) section below. +As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. See [Docker secrets](#docker-secrets) section below. If you set any group of values (i.e. all of `MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_HOST`), they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): @@ -142,15 +153,11 @@ The install and update script is only triggered when a default command is used ( - `NEXTCLOUD_UPDATE` (default: `0`) -If you share your html folder with multiple docker containers, you might want to avoid multiple processes updating the same shared volume - -- `NEXTCLOUD_INIT_LOCK` (not set by default) Set it to true to enable initialization locking. Other containers will wait for the current process to finish updating the html volume to continue. - -You might also want to make sure the htaccess is up to date after each container update. Especially on multiple swarm nodes as any discrepancy will make your server unusable. +You might want to make sure the htaccess is up to date after each container update. Especially on multiple swarm nodes as any discrepancy will make your server unusable. - `NEXTCLOUD_INIT_HTACCESS` (not set by default) Set it to true to enable run `occ maintenance:update:htaccess` after container initialization. -If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your Compose file. To inform Nextcloud about the Redis container, pass in the following parameters: - `REDIS_HOST` (not set by default) Name of Redis container - `REDIS_HOST_PORT` (default: `6379`) Optional port for Redis, only use for external Redis servers that run on non-standard ports. @@ -166,24 +173,28 @@ To use an external SMTP server, you have to provide the connection details. To c - `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. - `SMTP_NAME` (empty by default): The username for the authentication. - `SMTP_PASSWORD` (empty by default): The password for the authentication. -- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_FROM_ADDRESS` (not set by default): Set the local-part for the 'from' field in the emails sent by Nextcloud. - `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. +At least `SMTP_HOST`, `MAIL_FROM_ADDRESS` and `MAIL_DOMAIN` must be set for the configurations to be applied. + Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. To use an external S3 compatible object store as primary storage, set the following variables: -- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server - `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over - `OBJECTSTORE_S3_KEY`: AWS style access key - `OBJECTSTORE_S3_SECRET`: AWS style secret access key -- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_STORAGE_CLASS`: The storage class to use when adding objects to the bucket - `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server -- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. - `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 - `OBJECTSTORE_S3_LEGACYAUTH` (default: `false`): Not required for AWS S3 - `OBJECTSTORE_S3_OBJECT_PREFIX` (default: `urn:oid:`): Prefix to prepend to the fileid - `OBJECTSTORE_S3_AUTOCREATE` (default: `true`): Create the container if it does not exist +- `OBJECTSTORE_S3_SSE_C_KEY` (not set by default): Base64 encoded key with a maximum length of 32 bytes for server side encryption (SSE-C) Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. @@ -207,6 +218,43 @@ To customize other PHP limits you can simply change the following variables: - `PHP_MEMORY_LIMIT` (default `512M`) This sets the maximum amount of memory in bytes that a script is allowed to allocate. This is meant to help prevent poorly written scripts from eating up all available memory but it can prevent normal operation if set too tight. - `PHP_UPLOAD_LIMIT` (default `512M`) This sets the upload limit (`post_max_size` and `upload_max_filesize`) for big files. Note that you may have to change other limits depending on your client, webserver or operating system. Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html) for more information. +To customize Apache max file upload limit you can change the following variable: + +- `APACHE_BODY_LIMIT` (default `1073741824` [1GiB]) This restricts the total size of the HTTP request body sent from the client. It specifies the number of *bytes* that are allowed in a request body. A value of **0** means **unlimited**. Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html#apache) for more information. + +## Auto configuration via hook folders + +There are 5 hooks + +- `pre-installation` Executed before the Nextcloud is installed/initiated +- `post-installation` Executed after the Nextcloud is installed/initiated +- `pre-upgrade` Executed before the Nextcloud is upgraded +- `post-upgrade` Executed after the Nextcloud is upgraded +- `before-starting` Executed before the Nextcloud starts + +To use the hooks triggered by the `entrypoint` script, either + +- Added your script(s) to the individual of the hook folder(s), which are located at the path `/docker-entrypoint-hooks.d` in the container +- Use volume(s) if you want to use script from the host system inside the container, see example. + +**Note:** Only the script(s) located in a hook folder (not sub-folders), ending with `.sh` and marked as executable, will be executed. + +**Example:** Mount using volumes + +```yaml +... + app: + image: %%IMAGE%%:stable + + volumes: + - ./app-hooks/pre-installation:/docker-entrypoint-hooks.d/pre-installation + - ./app-hooks/post-installation:/docker-entrypoint-hooks.d/post-installation + - ./app-hooks/pre-upgrade:/docker-entrypoint-hooks.d/pre-upgrade + - ./app-hooks/post-upgrade:/docker-entrypoint-hooks.d/post-upgrade + - ./app-hooks/before-starting:/docker-entrypoint-hooks.d/before-starting +... +``` + ## Using the apache image behind a reverse proxy and auto configure server host and protocol The apache image will replace the remote addr (IP address visible to Nextcloud) with the IP address from `X-Real-IP` if the request is coming from a proxy in `10.0.0.0/8`, `172.16.0.0/12` or `192.168.0.0/16` by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client IP (`HTTP_X_FORWARDED_FOR`) from a trusted proxy, then disable rewrite IP and add the reverse proxy's IP address to `TRUSTED_PROXIES`. @@ -226,9 +274,9 @@ Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admi Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. -# Running this image with docker-compose +# Running this image with Docker Compose -The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. +The easiest way to get a fully featured and functional setup is using a `compose.yaml` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. @@ -239,8 +287,6 @@ This version will use the apache image and add a mariaDB container. The volumes Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. ```yaml -version: '2' - volumes: nextcloud: db: @@ -274,19 +320,17 @@ services: - MYSQL_HOST=db ``` -Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. +Then run `docker compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. ## Base version - FPM -When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option. The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). As this setup does **not include encryption**, it should be run behind a proxy. Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. ```yaml -version: '2' - volumes: nextcloud: db: @@ -330,15 +374,13 @@ services: - app ``` -Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. +Then run `docker compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. # Docker Secrets As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in `/run/secrets/` files. For example: ```yaml -version: '3.2' - services: db: image: postgres @@ -355,7 +397,7 @@ services: - postgres_user app: - image: nextcloud + image: %%IMAGE%% restart: always ports: - 8080:80 @@ -394,7 +436,7 @@ secrets: file: ./postgres_user.txt # put postgresql username in this file ``` -Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DATABASE`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`, `REDIS_HOST_PASSWORD` and `SMTP_PASSWORD`. +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DATABASE`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`, `REDIS_HOST_PASSWORD`, `SMTP_PASSWORD`, `OBJECTSTORE_S3_KEY`, and `OBJECTSTORE_S3_SECRET`. If you set any group of values (i.e. all of `MYSQL_DATABASE_FILE`, `MYSQL_USER_FILE`, `MYSQL_PASSWORD_FILE`, `MYSQL_HOST`), the script will not use the corresponding group of environment variables (`MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_HOST`). @@ -412,7 +454,7 @@ In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) sec # First use -When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `compose.yaml` file. # Update to a newer version @@ -431,11 +473,11 @@ $ docker run -d %%IMAGE%% Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. -When using docker-compose your compose file takes care of your configuration, so you just have to run: +When using Docker Compose, your `compose.yaml` file takes care of your configuration, so you just have to run: ```console -$ docker-compose pull -$ docker-compose up -d +$ docker compose pull +$ docker compose up -d ``` # Adding Features @@ -450,7 +492,7 @@ RUN ... The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. -If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) +If you use your own Dockerfile, you need to configure your `compose.yaml` file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the `compose.yaml` file) ```yaml app: @@ -483,11 +525,11 @@ docker build -t your-name --pull . docker run -d your-name ``` -or for docker-compose: +Or for Docker Compose: ```console -docker-compose build --pull -docker-compose up -d +docker compose build --pull +docker compose up -d ``` The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. @@ -496,25 +538,25 @@ The `--pull` option tells docker to look for new versions of the base image. The You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: -1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +1. Define your whole Nextcloud infrastructure in a `compose.yaml` file and run it with `docker compose up -d` to get the base installation, volumes and database. Work from there. 2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) - To import from a MySQL dump use the following commands - ```console - docker cp ./database.dmp nextcloud_db_1:/dmp - docker-compose exec db sh -c "mysql --user USER --password PASSWORD nextcloud < /dmp" - docker-compose exec db rm /dmp - ``` + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker compose exec db sh -c "mysql --user USER --password PASSWORD nextcloud < /dmp" + docker compose exec db rm /dmp + ``` - To import from a PostgreSQL dump use to following commands - ```console - docker cp ./database.dmp nextcloud_db_1:/dmp - docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" - docker-compose exec db rm /dmp - ``` + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker compose exec db rm /dmp + ``` 3. Edit your config.php @@ -522,15 +564,15 @@ You're already using Nextcloud and want to switch to docker? Great! Here are som - In case of MySQL database - ```php - 'dbhost' => 'db:3306', - ``` + ```php + 'dbhost' => 'db:3306', + ``` - In case of PostgreSQL database - ```php - 'dbhost' => 'db:5432', - ``` + ```php + 'dbhost' => 'db:5432', + ``` 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these @@ -548,16 +590,16 @@ You're already using Nextcloud and want to switch to docker? Great! Here are som ```php 'apps_paths' => array ( - 0 => array ( - 'path' => '/var/www/html/apps', - 'url' => '/apps', - 'writable' => false, - ), - 1 => array ( - 'path' => '/var/www/html/custom_apps', - 'url' => '/custom_apps', - 'writable' => true, - ), + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), ), ``` @@ -571,11 +613,11 @@ You're already using Nextcloud and want to switch to docker? Great! Here are som ```console docker cp ./data/ nextcloud_app_1:/var/www/html/ - docker-compose exec app chown -R www-data:www-data /var/www/html/data + docker compose exec app chown -R www-data:www-data /var/www/html/data docker cp ./theming/ nextcloud_app_1:/var/www/html/ - docker-compose exec app chown -R www-data:www-data /var/www/html/theming + docker compose exec app chown -R www-data:www-data /var/www/html/theming docker cp ./config/config.php nextcloud_app_1:/var/www/html/config - docker-compose exec app chown -R www-data:www-data /var/www/html/config + docker compose exec app chown -R www-data:www-data /var/www/html/config ``` If you want to preserve the metadata of your files like timestamps, copy the data directly on the host to the named volume using plain `cp` like this: @@ -588,7 +630,7 @@ You're already using Nextcloud and want to switch to docker? Great! Here are som ```console docker cp ./custom_apps/ nextcloud_data:/var/www/html/ - docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps + docker compose exec app chown -R www-data:www-data /var/www/html/custom_apps ``` # Questions / Issues diff --git a/nextcloud/deprecated.md b/nextcloud/deprecated.md index 0bfc19a2a076..4143d5a3731a 100644 --- a/nextcloud/deprecated.md +++ b/nextcloud/deprecated.md @@ -1,3 +1,3 @@ # IMPORTANT NOTE -⚠ This image is not officially supported by Nextcloud GmbH, use at your own risk. Use the [All-in-One docker image](https://github.com/nextcloud/all-in-one#nextcloud-all-in-one) for easier deployment. +⚠️⚠️⚠️ This image is maintained by community volunteers and designed for expert use. For quick and easy deployment that supports the full set of Nextcloud Hub features, use the [Nextcloud All-in-One docker container](https://github.com/nextcloud/all-in-one#nextcloud-all-in-one) maintained by Nextcloud GmbH. diff --git a/nextcloud/metadata.json b/nextcloud/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/nextcloud/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/nginx/README.md b/nginx/README.md index 7fd642fa9238..576035af8626 100644 --- a/nginx/README.md +++ b/nginx/README.md @@ -24,16 +24,33 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.25.3`, `mainline`, `1`, `1.25`, `latest`, `1.25.3-bookworm`, `mainline-bookworm`, `1-bookworm`, `1.25-bookworm`, `bookworm`](https://github.com/nginxinc/docker-nginx/blob/4bf0763f4977fff7e9648add59e0540088f3ca9f/mainline/debian/Dockerfile) -- [`1.25.3-perl`, `mainline-perl`, `1-perl`, `1.25-perl`, `perl`, `1.25.3-bookworm-perl`, `mainline-bookworm-perl`, `1-bookworm-perl`, `1.25-bookworm-perl`, `bookworm-perl`](https://github.com/nginxinc/docker-nginx/blob/4bf0763f4977fff7e9648add59e0540088f3ca9f/mainline/debian-perl/Dockerfile) -- [`1.25.3-alpine`, `mainline-alpine`, `1-alpine`, `1.25-alpine`, `alpine`, `1.25.3-alpine3.18`, `mainline-alpine3.18`, `1-alpine3.18`, `1.25-alpine3.18`, `alpine3.18`](https://github.com/nginxinc/docker-nginx/blob/4bf0763f4977fff7e9648add59e0540088f3ca9f/mainline/alpine/Dockerfile) -- [`1.25.3-alpine-perl`, `mainline-alpine-perl`, `1-alpine-perl`, `1.25-alpine-perl`, `alpine-perl`, `1.25.3-alpine3.18-perl`, `mainline-alpine3.18-perl`, `1-alpine3.18-perl`, `1.25-alpine3.18-perl`, `alpine3.18-perl`](https://github.com/nginxinc/docker-nginx/blob/4bf0763f4977fff7e9648add59e0540088f3ca9f/mainline/alpine-perl/Dockerfile) -- [`1.25.3-alpine-slim`, `mainline-alpine-slim`, `1-alpine-slim`, `1.25-alpine-slim`, `alpine-slim`, `1.25.3-alpine3.18-slim`, `mainline-alpine3.18-slim`, `1-alpine3.18-slim`, `1.25-alpine3.18-slim`, `alpine3.18-slim`](https://github.com/nginxinc/docker-nginx/blob/4bf0763f4977fff7e9648add59e0540088f3ca9f/mainline/alpine-slim/Dockerfile) -- [`1.24.0`, `stable`, `1.24`, `1.24.0-bullseye`, `stable-bullseye`, `1.24-bullseye`](https://github.com/nginxinc/docker-nginx/blob/1a8d87b69760693a8e33cd8a9e0c2e5f0e8b0e3c/stable/debian/Dockerfile) -- [`1.24.0-perl`, `stable-perl`, `1.24-perl`, `1.24.0-bullseye-perl`, `stable-bullseye-perl`, `1.24-bullseye-perl`](https://github.com/nginxinc/docker-nginx/blob/1a8d87b69760693a8e33cd8a9e0c2e5f0e8b0e3c/stable/debian-perl/Dockerfile) -- [`1.24.0-alpine`, `stable-alpine`, `1.24-alpine`, `1.24.0-alpine3.17`, `stable-alpine3.17`, `1.24-alpine3.17`](https://github.com/nginxinc/docker-nginx/blob/1a8d87b69760693a8e33cd8a9e0c2e5f0e8b0e3c/stable/alpine/Dockerfile) -- [`1.24.0-alpine-perl`, `stable-alpine-perl`, `1.24-alpine-perl`, `1.24.0-alpine3.17-perl`, `stable-alpine3.17-perl`, `1.24-alpine3.17-perl`](https://github.com/nginxinc/docker-nginx/blob/1a8d87b69760693a8e33cd8a9e0c2e5f0e8b0e3c/stable/alpine-perl/Dockerfile) -- [`1.24.0-alpine-slim`, `stable-alpine-slim`, `1.24-alpine-slim`, `1.24.0-alpine3.17-slim`, `stable-alpine3.17-slim`, `1.24-alpine3.17-slim`](https://github.com/nginxinc/docker-nginx/blob/1a8d87b69760693a8e33cd8a9e0c2e5f0e8b0e3c/stable/alpine-slim/Dockerfile) +- [`1.27.5`, `mainline`, `1`, `1.27`, `latest`, `1.27.5-bookworm`, `mainline-bookworm`, `1-bookworm`, `1.27-bookworm`, `bookworm`](https://github.com/nginx/docker-nginx/blob/eaf8875a1967d24cea6ed8b37109075e39ed9e43/mainline/debian/Dockerfile) + +- [`1.27.5-perl`, `mainline-perl`, `1-perl`, `1.27-perl`, `perl`, `1.27.5-bookworm-perl`, `mainline-bookworm-perl`, `1-bookworm-perl`, `1.27-bookworm-perl`, `bookworm-perl`](https://github.com/nginx/docker-nginx/blob/eaf8875a1967d24cea6ed8b37109075e39ed9e43/mainline/debian-perl/Dockerfile) + +- [`1.27.5-otel`, `mainline-otel`, `1-otel`, `1.27-otel`, `otel`, `1.27.5-bookworm-otel`, `mainline-bookworm-otel`, `1-bookworm-otel`, `1.27-bookworm-otel`, `bookworm-otel`](https://github.com/nginx/docker-nginx/blob/4e08af2988063a3b02420ef0040e2e13fc9d93d6/mainline/debian-otel/Dockerfile) + +- [`1.27.5-alpine`, `mainline-alpine`, `1-alpine`, `1.27-alpine`, `alpine`, `1.27.5-alpine3.21`, `mainline-alpine3.21`, `1-alpine3.21`, `1.27-alpine3.21`, `alpine3.21`](https://github.com/nginx/docker-nginx/blob/eaf8875a1967d24cea6ed8b37109075e39ed9e43/mainline/alpine/Dockerfile) + +- [`1.27.5-alpine-perl`, `mainline-alpine-perl`, `1-alpine-perl`, `1.27-alpine-perl`, `alpine-perl`, `1.27.5-alpine3.21-perl`, `mainline-alpine3.21-perl`, `1-alpine3.21-perl`, `1.27-alpine3.21-perl`, `alpine3.21-perl`](https://github.com/nginx/docker-nginx/blob/eaf8875a1967d24cea6ed8b37109075e39ed9e43/mainline/alpine-perl/Dockerfile) + +- [`1.27.5-alpine-slim`, `mainline-alpine-slim`, `1-alpine-slim`, `1.27-alpine-slim`, `alpine-slim`, `1.27.5-alpine3.21-slim`, `mainline-alpine3.21-slim`, `1-alpine3.21-slim`, `1.27-alpine3.21-slim`, `alpine3.21-slim`](https://github.com/nginx/docker-nginx/blob/eaf8875a1967d24cea6ed8b37109075e39ed9e43/mainline/alpine-slim/Dockerfile) + +- [`1.27.5-alpine-otel`, `mainline-alpine-otel`, `1-alpine-otel`, `1.27-alpine-otel`, `alpine-otel`, `1.27.5-alpine3.21-otel`, `mainline-alpine3.21-otel`, `1-alpine3.21-otel`, `1.27-alpine3.21-otel`, `alpine3.21-otel`](https://github.com/nginx/docker-nginx/blob/4e08af2988063a3b02420ef0040e2e13fc9d93d6/mainline/alpine-otel/Dockerfile) + +- [`1.28.0`, `stable`, `1.28`, `1.28.0-bookworm`, `stable-bookworm`, `1.28-bookworm`](https://github.com/nginx/docker-nginx/blob/7f1d49f6f222f7e588a9066fd53a0ce43c3466a5/stable/debian/Dockerfile) + +- [`1.28.0-perl`, `stable-perl`, `1.28-perl`, `1.28.0-bookworm-perl`, `stable-bookworm-perl`, `1.28-bookworm-perl`](https://github.com/nginx/docker-nginx/blob/7f1d49f6f222f7e588a9066fd53a0ce43c3466a5/stable/debian-perl/Dockerfile) + +- [`1.28.0-otel`, `stable-otel`, `1.28-otel`, `1.28.0-bookworm-otel`, `stable-bookworm-otel`, `1.28-bookworm-otel`](https://github.com/nginx/docker-nginx/blob/7f1d49f6f222f7e588a9066fd53a0ce43c3466a5/stable/debian-otel/Dockerfile) + +- [`1.28.0-alpine`, `stable-alpine`, `1.28-alpine`, `1.28.0-alpine3.21`, `stable-alpine3.21`, `1.28-alpine3.21`](https://github.com/nginx/docker-nginx/blob/7f1d49f6f222f7e588a9066fd53a0ce43c3466a5/stable/alpine/Dockerfile) + +- [`1.28.0-alpine-perl`, `stable-alpine-perl`, `1.28-alpine-perl`, `1.28.0-alpine3.21-perl`, `stable-alpine3.21-perl`, `1.28-alpine3.21-perl`](https://github.com/nginx/docker-nginx/blob/7f1d49f6f222f7e588a9066fd53a0ce43c3466a5/stable/alpine-perl/Dockerfile) + +- [`1.28.0-alpine-slim`, `stable-alpine-slim`, `1.28-alpine-slim`, `1.28.0-alpine3.21-slim`, `stable-alpine3.21-slim`, `1.28-alpine3.21-slim`](https://github.com/nginx/docker-nginx/blob/7f1d49f6f222f7e588a9066fd53a0ce43c3466a5/stable/alpine-slim/Dockerfile) + +- [`1.28.0-alpine-otel`, `stable-alpine-otel`, `1.28-alpine-otel`, `1.28.0-alpine3.21-otel`, `stable-alpine3.21-otel`, `1.28-alpine3.21-otel`](https://github.com/nginx/docker-nginx/blob/7f1d49f6f222f7e588a9066fd53a0ce43c3466a5/stable/alpine-otel/Dockerfile) # Quick reference (cont.) @@ -41,7 +58,7 @@ WARNING: [https://github.com/nginxinc/docker-nginx/issues](https://github.com/nginxinc/docker-nginx/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/nginx/), [`arm32v5`](https://hub.docker.com/r/arm32v5/nginx/), [`arm32v6`](https://hub.docker.com/r/arm32v6/nginx/), [`arm32v7`](https://hub.docker.com/r/arm32v7/nginx/), [`arm64v8`](https://hub.docker.com/r/arm64v8/nginx/), [`i386`](https://hub.docker.com/r/i386/nginx/), [`mips64le`](https://hub.docker.com/r/mips64le/nginx/), [`ppc64le`](https://hub.docker.com/r/ppc64le/nginx/), [`s390x`](https://hub.docker.com/r/s390x/nginx/) + [`amd64`](https://hub.docker.com/r/amd64/nginx/), [`arm32v5`](https://hub.docker.com/r/arm32v5/nginx/), [`arm32v6`](https://hub.docker.com/r/arm32v6/nginx/), [`arm32v7`](https://hub.docker.com/r/arm32v7/nginx/), [`arm64v8`](https://hub.docker.com/r/arm64v8/nginx/), [`i386`](https://hub.docker.com/r/i386/nginx/), [`mips64le`](https://hub.docker.com/r/mips64le/nginx/), [`ppc64le`](https://hub.docker.com/r/ppc64le/nginx/), [`riscv64`](https://hub.docker.com/r/riscv64/nginx/), [`s390x`](https://hub.docker.com/r/s390x/nginx/) - **Published image artifact details**: [repo-info repo's `repos/nginx/` directory](https://github.com/docker-library/repo-info/blob/master/repos/nginx) ([history](https://github.com/docker-library/repo-info/commits/master/repos/nginx)) @@ -77,9 +94,10 @@ FROM nginx COPY static-html-directory /usr/share/nginx/html ``` -Place this file in the same directory as your directory of content ("static-html-directory"), run `docker build -t some-content-nginx .`, then start your container: +Place this file in the same directory as your directory of content ("static-html-directory"), then run these commands to build and start your container: ```console +$ docker build -t some-content-nginx . $ docker run --name some-nginx -d some-content-nginx ``` @@ -98,9 +116,7 @@ You can mount your configuration file, or build a new image with it. If you wish to adapt the default configuration, use something like the following to get it from a running nginx container: ```console -$ docker run --name tmp-nginx-container -d nginx -$ docker cp tmp-nginx-container:/etc/nginx/nginx.conf /host/path/nginx.conf -$ docker rm -f tmp-nginx-container +$ docker run --rm --entrypoint=cat nginx /etc/nginx/nginx.conf > /host/path/nginx.conf ``` And then edit `/host/path/nginx.conf` in your host file system. @@ -132,7 +148,7 @@ $ docker run --name my-custom-nginx-container -d custom-nginx Out-of-the-box, nginx doesn't support environment variables inside most configuration blocks. But this image has a function, which will extract environment variables before nginx starts. -Here is an example using docker-compose.yml: +Here is an example using `compose.yaml`: ```yaml web: @@ -188,7 +204,7 @@ Images since version 1.9.8 come with `nginx-debug` binary that produces verbose $ docker run --name my-nginx -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx nginx-debug -g 'daemon off;' ``` -Similar configuration in docker-compose.yml may look like this: +Similar configuration in `compose.yaml` may look like this: ```yaml web: @@ -252,7 +268,7 @@ The `nginx` images come in many flavors, each designed for a specific use case. 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. -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. +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. ## `nginx:-perl` / `nginx:-alpine-perl` diff --git a/nginx/content.md b/nginx/content.md index 805b97eae2d2..65fb24e8c90e 100644 --- a/nginx/content.md +++ b/nginx/content.md @@ -21,9 +21,10 @@ FROM %%IMAGE%% COPY static-html-directory /usr/share/nginx/html ``` -Place this file in the same directory as your directory of content ("static-html-directory"), run `docker build -t some-content-nginx .`, then start your container: +Place this file in the same directory as your directory of content ("static-html-directory"), then run these commands to build and start your container: ```console +$ docker build -t some-content-nginx . $ docker run --name some-nginx -d some-content-nginx ``` @@ -42,9 +43,7 @@ You can mount your configuration file, or build a new image with it. If you wish to adapt the default configuration, use something like the following to get it from a running nginx container: ```console -$ docker run --name tmp-nginx-container -d %%IMAGE%% -$ docker cp tmp-nginx-container:/etc/nginx/nginx.conf /host/path/nginx.conf -$ docker rm -f tmp-nginx-container +$ docker run --rm --entrypoint=cat %%IMAGE%% /etc/nginx/nginx.conf > /host/path/nginx.conf ``` And then edit `/host/path/nginx.conf` in your host file system. @@ -76,7 +75,7 @@ $ docker run --name my-custom-nginx-container -d custom-nginx Out-of-the-box, %%IMAGE%% doesn't support environment variables inside most configuration blocks. But this image has a function, which will extract environment variables before %%IMAGE%% starts. -Here is an example using docker-compose.yml: +Here is an example using `compose.yaml`: ```yaml web: @@ -132,7 +131,7 @@ Images since version 1.9.8 come with `nginx-debug` binary that produces verbose $ docker run --name my-nginx -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d %%IMAGE%% nginx-debug -g 'daemon off;' ``` -Similar configuration in docker-compose.yml may look like this: +Similar configuration in `compose.yaml` may look like this: ```yaml web: diff --git a/nginx/metadata.json b/nginx/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/nginx/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/node/README.md b/node/README.md index 993bc9adea89..92f36a2bb743 100644 --- a/node/README.md +++ b/node/README.md @@ -24,28 +24,41 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`21-alpine3.17`, `21.2-alpine3.17`, `21.2.0-alpine3.17`, `alpine3.17`, `current-alpine3.17`](https://github.com/nodejs/docker-node/blob/ed83529ea65cfbeadda161ee501b4cf83444aa2d/21/alpine3.17/Dockerfile) -- [`21-alpine`, `21-alpine3.18`, `21.2-alpine`, `21.2-alpine3.18`, `21.2.0-alpine`, `21.2.0-alpine3.18`, `alpine`, `alpine3.18`, `current-alpine`, `current-alpine3.18`](https://github.com/nodejs/docker-node/blob/ed83529ea65cfbeadda161ee501b4cf83444aa2d/21/alpine3.18/Dockerfile) -- [`21`, `21-bookworm`, `21.2`, `21.2-bookworm`, `21.2.0`, `21.2.0-bookworm`, `bookworm`, `current`, `current-bookworm`, `latest`](https://github.com/nodejs/docker-node/blob/ed83529ea65cfbeadda161ee501b4cf83444aa2d/21/bookworm/Dockerfile) -- [`21-bookworm-slim`, `21-slim`, `21.2-bookworm-slim`, `21.2-slim`, `21.2.0-bookworm-slim`, `21.2.0-slim`, `bookworm-slim`, `current-bookworm-slim`, `current-slim`, `slim`](https://github.com/nodejs/docker-node/blob/ed83529ea65cfbeadda161ee501b4cf83444aa2d/21/bookworm-slim/Dockerfile) -- [`21-bullseye`, `21.2-bullseye`, `21.2.0-bullseye`, `bullseye`, `current-bullseye`](https://github.com/nodejs/docker-node/blob/ed83529ea65cfbeadda161ee501b4cf83444aa2d/21/bullseye/Dockerfile) -- [`21-bullseye-slim`, `21.2-bullseye-slim`, `21.2.0-bullseye-slim`, `bullseye-slim`, `current-bullseye-slim`](https://github.com/nodejs/docker-node/blob/ed83529ea65cfbeadda161ee501b4cf83444aa2d/21/bullseye-slim/Dockerfile) -- [`20-alpine3.17`, `20.9-alpine3.17`, `20.9.0-alpine3.17`, `iron-alpine3.17`, `lts-alpine3.17`](https://github.com/nodejs/docker-node/blob/e148eb79f51510593647e6a10574f8931bf16384/20/alpine3.17/Dockerfile) -- [`20-alpine`, `20-alpine3.18`, `20.9-alpine`, `20.9-alpine3.18`, `20.9.0-alpine`, `20.9.0-alpine3.18`, `iron-alpine`, `iron-alpine3.18`, `lts-alpine`, `lts-alpine3.18`](https://github.com/nodejs/docker-node/blob/e148eb79f51510593647e6a10574f8931bf16384/20/alpine3.18/Dockerfile) -- [`20`, `20-bookworm`, `20.9`, `20.9-bookworm`, `20.9.0`, `20.9.0-bookworm`, `iron`, `iron-bookworm`, `lts`, `lts-bookworm`, `lts-iron`](https://github.com/nodejs/docker-node/blob/62c2e3cfb17ba8d9167b0daebbff9ea5ecaef6e4/20/bookworm/Dockerfile) -- [`20-bookworm-slim`, `20-slim`, `20.9-bookworm-slim`, `20.9-slim`, `20.9.0-bookworm-slim`, `20.9.0-slim`, `iron-bookworm-slim`, `iron-slim`, `lts-bookworm-slim`, `lts-slim`](https://github.com/nodejs/docker-node/blob/dbc174542d51f03535f6513391f569e3b93a91dd/20/bookworm-slim/Dockerfile) -- [`20-bullseye`, `20.9-bullseye`, `20.9.0-bullseye`, `iron-bullseye`, `lts-bullseye`](https://github.com/nodejs/docker-node/blob/62c2e3cfb17ba8d9167b0daebbff9ea5ecaef6e4/20/bullseye/Dockerfile) -- [`20-bullseye-slim`, `20.9-bullseye-slim`, `20.9.0-bullseye-slim`, `iron-bullseye-slim`, `lts-bullseye-slim`](https://github.com/nodejs/docker-node/blob/dbc174542d51f03535f6513391f569e3b93a91dd/20/bullseye-slim/Dockerfile) -- [`20-buster`, `20.9-buster`, `20.9.0-buster`, `iron-buster`, `lts-buster`](https://github.com/nodejs/docker-node/blob/62c2e3cfb17ba8d9167b0daebbff9ea5ecaef6e4/20/buster/Dockerfile) -- [`20-buster-slim`, `20.9-buster-slim`, `20.9.0-buster-slim`, `iron-buster-slim`, `lts-buster-slim`](https://github.com/nodejs/docker-node/blob/dbc174542d51f03535f6513391f569e3b93a91dd/20/buster-slim/Dockerfile) -- [`18-alpine3.17`, `18.18-alpine3.17`, `18.18.2-alpine3.17`, `hydrogen-alpine3.17`](https://github.com/nodejs/docker-node/blob/e148eb79f51510593647e6a10574f8931bf16384/18/alpine3.17/Dockerfile) -- [`18-alpine`, `18-alpine3.18`, `18.18-alpine`, `18.18-alpine3.18`, `18.18.2-alpine`, `18.18.2-alpine3.18`, `hydrogen-alpine`, `hydrogen-alpine3.18`](https://github.com/nodejs/docker-node/blob/e148eb79f51510593647e6a10574f8931bf16384/18/alpine3.18/Dockerfile) -- [`18`, `18-bookworm`, `18.18`, `18.18-bookworm`, `18.18.2`, `18.18.2-bookworm`, `hydrogen`, `hydrogen-bookworm`](https://github.com/nodejs/docker-node/blob/bdf5edb771596f7e3998ff318c3098850261b17b/18/bookworm/Dockerfile) -- [`18-bookworm-slim`, `18-slim`, `18.18-bookworm-slim`, `18.18-slim`, `18.18.2-bookworm-slim`, `18.18.2-slim`, `hydrogen-bookworm-slim`, `hydrogen-slim`](https://github.com/nodejs/docker-node/blob/dbc174542d51f03535f6513391f569e3b93a91dd/18/bookworm-slim/Dockerfile) -- [`18-bullseye`, `18.18-bullseye`, `18.18.2-bullseye`, `hydrogen-bullseye`](https://github.com/nodejs/docker-node/blob/bdf5edb771596f7e3998ff318c3098850261b17b/18/bullseye/Dockerfile) -- [`18-bullseye-slim`, `18.18-bullseye-slim`, `18.18.2-bullseye-slim`, `hydrogen-bullseye-slim`](https://github.com/nodejs/docker-node/blob/dbc174542d51f03535f6513391f569e3b93a91dd/18/bullseye-slim/Dockerfile) -- [`18-buster`, `18.18-buster`, `18.18.2-buster`, `hydrogen-buster`](https://github.com/nodejs/docker-node/blob/bdf5edb771596f7e3998ff318c3098850261b17b/18/buster/Dockerfile) -- [`18-buster-slim`, `18.18-buster-slim`, `18.18.2-buster-slim`, `hydrogen-buster-slim`](https://github.com/nodejs/docker-node/blob/dbc174542d51f03535f6513391f569e3b93a91dd/18/buster-slim/Dockerfile) +- [`24-alpine3.21`, `24.2-alpine3.21`, `24.2.0-alpine3.21`, `alpine3.21`, `current-alpine3.21`](https://github.com/nodejs/docker-node/blob/52a145e08a3c4e7b6e72addccc410e57530cd0c1/24/alpine3.21/Dockerfile) + +- [`24-alpine`, `24-alpine3.22`, `24.2-alpine`, `24.2-alpine3.22`, `24.2.0-alpine`, `24.2.0-alpine3.22`, `alpine`, `alpine3.22`, `current-alpine`, `current-alpine3.22`](https://github.com/nodejs/docker-node/blob/52a145e08a3c4e7b6e72addccc410e57530cd0c1/24/alpine3.22/Dockerfile) + +- [`24`, `24-bookworm`, `24.2`, `24.2-bookworm`, `24.2.0`, `24.2.0-bookworm`, `bookworm`, `current`, `current-bookworm`, `latest`](https://github.com/nodejs/docker-node/blob/52a145e08a3c4e7b6e72addccc410e57530cd0c1/24/bookworm/Dockerfile) + +- [`24-bookworm-slim`, `24-slim`, `24.2-bookworm-slim`, `24.2-slim`, `24.2.0-bookworm-slim`, `24.2.0-slim`, `bookworm-slim`, `current-bookworm-slim`, `current-slim`, `slim`](https://github.com/nodejs/docker-node/blob/52a145e08a3c4e7b6e72addccc410e57530cd0c1/24/bookworm-slim/Dockerfile) + +- [`24-bullseye`, `24.2-bullseye`, `24.2.0-bullseye`, `bullseye`, `current-bullseye`](https://github.com/nodejs/docker-node/blob/52a145e08a3c4e7b6e72addccc410e57530cd0c1/24/bullseye/Dockerfile) + +- [`24-bullseye-slim`, `24.2-bullseye-slim`, `24.2.0-bullseye-slim`, `bullseye-slim`, `current-bullseye-slim`](https://github.com/nodejs/docker-node/blob/52a145e08a3c4e7b6e72addccc410e57530cd0c1/24/bullseye-slim/Dockerfile) + +- [`22-alpine3.21`, `22.16-alpine3.21`, `22.16.0-alpine3.21`, `jod-alpine3.21`, `lts-alpine3.21`](https://github.com/nodejs/docker-node/blob/d073523fcb78049b965f76d813627eb59ffb7a58/22/alpine3.21/Dockerfile) + +- [`22-alpine`, `22-alpine3.22`, `22.16-alpine`, `22.16-alpine3.22`, `22.16.0-alpine`, `22.16.0-alpine3.22`, `jod-alpine`, `jod-alpine3.22`, `lts-alpine`, `lts-alpine3.22`](https://github.com/nodejs/docker-node/blob/b1e2c97844d5647bcfaf6d6c7862dd39fbc2ca51/22/alpine3.22/Dockerfile) + +- [`22`, `22-bookworm`, `22.16`, `22.16-bookworm`, `22.16.0`, `22.16.0-bookworm`, `jod`, `jod-bookworm`, `lts`, `lts-bookworm`, `lts-jod`](https://github.com/nodejs/docker-node/blob/d073523fcb78049b965f76d813627eb59ffb7a58/22/bookworm/Dockerfile) + +- [`22-bookworm-slim`, `22-slim`, `22.16-bookworm-slim`, `22.16-slim`, `22.16.0-bookworm-slim`, `22.16.0-slim`, `jod-bookworm-slim`, `jod-slim`, `lts-bookworm-slim`, `lts-slim`](https://github.com/nodejs/docker-node/blob/d073523fcb78049b965f76d813627eb59ffb7a58/22/bookworm-slim/Dockerfile) + +- [`22-bullseye`, `22.16-bullseye`, `22.16.0-bullseye`, `jod-bullseye`, `lts-bullseye`](https://github.com/nodejs/docker-node/blob/d073523fcb78049b965f76d813627eb59ffb7a58/22/bullseye/Dockerfile) + +- [`22-bullseye-slim`, `22.16-bullseye-slim`, `22.16.0-bullseye-slim`, `jod-bullseye-slim`, `lts-bullseye-slim`](https://github.com/nodejs/docker-node/blob/d073523fcb78049b965f76d813627eb59ffb7a58/22/bullseye-slim/Dockerfile) + +- [`20-alpine3.21`, `20.19-alpine3.21`, `20.19.2-alpine3.21`, `iron-alpine3.21`](https://github.com/nodejs/docker-node/blob/a87fa26c1bb455170dac58c57c661e820a7390cb/20/alpine3.21/Dockerfile) + +- [`20-alpine`, `20-alpine3.22`, `20.19-alpine`, `20.19-alpine3.22`, `20.19.2-alpine`, `20.19.2-alpine3.22`, `iron-alpine`, `iron-alpine3.22`](https://github.com/nodejs/docker-node/blob/b1e2c97844d5647bcfaf6d6c7862dd39fbc2ca51/20/alpine3.22/Dockerfile) + +- [`20`, `20-bookworm`, `20.19`, `20.19-bookworm`, `20.19.2`, `20.19.2-bookworm`, `iron`, `iron-bookworm`](https://github.com/nodejs/docker-node/blob/a87fa26c1bb455170dac58c57c661e820a7390cb/20/bookworm/Dockerfile) + +- [`20-bookworm-slim`, `20-slim`, `20.19-bookworm-slim`, `20.19-slim`, `20.19.2-bookworm-slim`, `20.19.2-slim`, `iron-bookworm-slim`, `iron-slim`](https://github.com/nodejs/docker-node/blob/a87fa26c1bb455170dac58c57c661e820a7390cb/20/bookworm-slim/Dockerfile) + +- [`20-bullseye`, `20.19-bullseye`, `20.19.2-bullseye`, `iron-bullseye`](https://github.com/nodejs/docker-node/blob/a87fa26c1bb455170dac58c57c661e820a7390cb/20/bullseye/Dockerfile) + +- [`20-bullseye-slim`, `20.19-bullseye-slim`, `20.19.2-bullseye-slim`, `iron-bullseye-slim`](https://github.com/nodejs/docker-node/blob/a87fa26c1bb455170dac58c57c661e820a7390cb/20/bullseye-slim/Dockerfile) # Quick reference (cont.) @@ -90,7 +103,7 @@ The `node` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like bookworm, bullseye, or buster 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. +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. 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. diff --git a/node/metadata.json b/node/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/node/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/notary/README.md b/notary/README.md index 3bf523016431..832df259bae0 100644 --- a/notary/README.md +++ b/notary/README.md @@ -24,8 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`server-0.7.0`, `server`](https://github.com/docker/notary-official-images/blob/77b9b7833f8dd6be07104b214193788795a320ff/notary-server/Dockerfile) -- [`signer-0.7.0`, `signer`](https://github.com/docker/notary-official-images/blob/77b9b7833f8dd6be07104b214193788795a320ff/notary-signer/Dockerfile) +**No supported tags** # Quick reference (cont.) @@ -33,7 +32,7 @@ WARNING: [https://github.com/docker/notary-official-images/issues](https://github.com/docker/notary-official-images/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/notary/), [`arm32v6`](https://hub.docker.com/r/arm32v6/notary/), [`arm64v8`](https://hub.docker.com/r/arm64v8/notary/), [`i386`](https://hub.docker.com/r/i386/notary/), [`ppc64le`](https://hub.docker.com/r/ppc64le/notary/), [`s390x`](https://hub.docker.com/r/s390x/notary/) + **No supported architectures** - **Published image artifact details**: [repo-info repo's `repos/notary/` directory](https://github.com/docker-library/repo-info/blob/master/repos/notary) ([history](https://github.com/docker-library/repo-info/commits/master/repos/notary)) diff --git a/notary/metadata.json b/notary/metadata.json new file mode 100644 index 000000000000..f1e52700787d --- /dev/null +++ b/notary/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "security" + ] + } +} diff --git a/odoo/README.md b/odoo/README.md index 1d232338b986..f355bc505f80 100644 --- a/odoo/README.md +++ b/odoo/README.md @@ -24,9 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`17.0`, `17`, `latest`](https://github.com/odoo/docker/blob/37a68eedff8ad776107bd51f0494514d4e4fb7be/17.0/Dockerfile) -- [`16.0`, `16`](https://github.com/odoo/docker/blob/37a68eedff8ad776107bd51f0494514d4e4fb7be/16.0/Dockerfile) -- [`15.0`, `15`](https://github.com/odoo/docker/blob/37a68eedff8ad776107bd51f0494514d4e4fb7be/15.0/Dockerfile) +- [`18.0-20250606`, `18.0`, `18`, `latest`](https://github.com/odoo/docker/blob/5baa064da27446d2c9aa4b087cc5ead956bc2a20/18.0/Dockerfile) + +- [`17.0-20250606`, `17.0`, `17`](https://github.com/odoo/docker/blob/5baa064da27446d2c9aa4b087cc5ead956bc2a20/17.0/Dockerfile) + +- [`16.0-20250606`, `16.0`, `16`](https://github.com/odoo/docker/blob/5baa064da27446d2c9aa4b087cc5ead956bc2a20/16.0/Dockerfile) # Quick reference (cont.) @@ -112,7 +114,7 @@ The default configuration file for the server (located at `/etc/odoo/odoo.conf`) $ docker run -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t odoo ``` -Please use [this configuration template](https://github.com/odoo/docker/blob/master/16.0/odoo.conf) to write your custom configuration as we already set some arguments for running Odoo inside a Docker container. +Please use [this configuration template](https://github.com/odoo/docker/blob/master/17.0/odoo.conf) to write your custom configuration as we already set some arguments for running Odoo inside a Docker container. You can also directly specify Odoo arguments inline. Those arguments must be given after the keyword `--` in the command-line, as follows @@ -150,13 +152,12 @@ Tweak these environment variables to easily connect to a postgres server: ## Docker Compose examples -The simplest `docker-compose.yml` file would be: +The simplest `compose.yaml` file would be: ```yml -version: '3.1' services: web: - image: odoo:16.0 + image: odoo:17.0 depends_on: - db ports: @@ -172,18 +173,17 @@ services: If the default postgres credentials does not suit you, tweak the environment variables: ```yml -version: '3.1' services: web: - image: odoo:16.0 + image: odoo:17.0 depends_on: - mydb ports: - "8069:8069" environment: - - HOST=mydb - - USER=odoo - - PASSWORD=myodoo + - HOST=mydb + - USER=odoo + - PASSWORD=myodoo mydb: image: postgres:15 environment: @@ -200,10 +200,9 @@ Here's a last example showing you how to - use a `secrets` file named `odoo_pg_pass` that contains the postgreql password shared by both services ```yml -version: '3.1' services: web: - image: odoo:16.0 + image: odoo:17.0 depends_on: - db ports: @@ -236,10 +235,10 @@ secrets: file: odoo_pg_pass ``` -To start your Odoo instance, go in the directory of the `docker-compose.yml` file you created from the previous examples and type: +To start your Odoo instance, go in the directory of the `compose.yaml` file you created from the previous examples and type: ```console -docker-compose up -d +docker compose up -d ``` # How to upgrade this image @@ -248,7 +247,7 @@ Odoo images are updated on a regular basis to make them use recent releases (a n Suppose you created a database from an Odoo instance named old-odoo, and you want to access this database from a new Odoo instance named new-odoo, e.g. because you've just downloaded a newer Odoo image. -By default, Odoo 16.0 uses a filestore (located at `/var/lib/odoo/filestore/`) for attachments. You should restore this filestore in your new Odoo instance by running +By default, Odoo 16.0+ uses a filestore (located at `/var/lib/odoo/filestore/`) for attachments. You should restore this filestore in your new Odoo instance by running ```console $ docker run --volumes-from old-odoo -p 8070:8069 --name new-odoo --link db:db -t odoo @@ -256,7 +255,7 @@ $ docker run --volumes-from old-odoo -p 8070:8069 --name new-odoo --link db:db - # License -View [license information](https://raw.githubusercontent.com/odoo/odoo/14.0/LICENSE) for the software contained in this image. +View [license information](https://github.com/odoo/odoo/blob/master/LICENSE) for the software contained in this image. 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). diff --git a/odoo/content.md b/odoo/content.md index c9bb340181bb..db07cef10dd8 100644 --- a/odoo/content.md +++ b/odoo/content.md @@ -63,7 +63,7 @@ The default configuration file for the server (located at `/etc/odoo/odoo.conf`) $ docker run -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t %%IMAGE%% ``` -Please use [this configuration template](https://github.com/odoo/docker/blob/master/16.0/odoo.conf) to write your custom configuration as we already set some arguments for running Odoo inside a Docker container. +Please use [this configuration template](https://github.com/odoo/docker/blob/master/17.0/odoo.conf) to write your custom configuration as we already set some arguments for running Odoo inside a Docker container. You can also directly specify Odoo arguments inline. Those arguments must be given after the keyword `--` in the command-line, as follows @@ -101,13 +101,12 @@ Tweak these environment variables to easily connect to a postgres server: ## Docker Compose examples -The simplest `docker-compose.yml` file would be: +The simplest `compose.yaml` file would be: ```yml -version: '3.1' services: web: - image: %%IMAGE%%:16.0 + image: %%IMAGE%%:17.0 depends_on: - db ports: @@ -123,18 +122,17 @@ services: If the default postgres credentials does not suit you, tweak the environment variables: ```yml -version: '3.1' services: web: - image: %%IMAGE%%:16.0 + image: %%IMAGE%%:17.0 depends_on: - mydb ports: - "8069:8069" environment: - - HOST=mydb - - USER=odoo - - PASSWORD=myodoo + - HOST=mydb + - USER=odoo + - PASSWORD=myodoo mydb: image: postgres:15 environment: @@ -151,10 +149,9 @@ Here's a last example showing you how to - use a `secrets` file named `odoo_pg_pass` that contains the postgreql password shared by both services ```yml -version: '3.1' services: web: - image: %%IMAGE%%:16.0 + image: %%IMAGE%%:17.0 depends_on: - db ports: @@ -187,10 +184,10 @@ secrets: file: odoo_pg_pass ``` -To start your Odoo instance, go in the directory of the `docker-compose.yml` file you created from the previous examples and type: +To start your Odoo instance, go in the directory of the `compose.yaml` file you created from the previous examples and type: ```console -docker-compose up -d +docker compose up -d ``` # How to upgrade this image @@ -199,7 +196,7 @@ Odoo images are updated on a regular basis to make them use recent releases (a n Suppose you created a database from an Odoo instance named old-odoo, and you want to access this database from a new Odoo instance named new-odoo, e.g. because you've just downloaded a newer Odoo image. -By default, Odoo 16.0 uses a filestore (located at `/var/lib/odoo/filestore/`) for attachments. You should restore this filestore in your new Odoo instance by running +By default, Odoo 16.0+ uses a filestore (located at `/var/lib/odoo/filestore/`) for attachments. You should restore this filestore in your new Odoo instance by running ```console $ docker run --volumes-from old-odoo -p 8070:8069 --name new-odoo --link db:db -t %%IMAGE%% diff --git a/odoo/license.md b/odoo/license.md index 31c83177006d..785f6a2deac2 100644 --- a/odoo/license.md +++ b/odoo/license.md @@ -1 +1 @@ -View [license information](https://raw.githubusercontent.com/odoo/odoo/14.0/LICENSE) for the software contained in this image. +View [license information](https://github.com/odoo/odoo/blob/master/LICENSE) for the software contained in this image. diff --git a/odoo/metadata.json b/odoo/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/odoo/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/open-liberty/README-short.txt b/open-liberty/README-short.txt index 46fab7571f4c..6be691649936 100644 --- a/open-liberty/README-short.txt +++ b/open-liberty/README-short.txt @@ -1 +1 @@ -Open Liberty multi-architecture images based on Ubuntu 18.04 +Open Liberty multi-architecture images based on Ubuntu diff --git a/open-liberty/README.md b/open-liberty/README.md index ce67d2c40a85..efd5af7fda78 100644 --- a/open-liberty/README.md +++ b/open-liberty/README.md @@ -24,33 +24,47 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`beta`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/latest/beta/Dockerfile.ubuntu.openjdk8) -- [`beta-java11`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/latest/beta/Dockerfile.ubuntu.openjdk11) -- [`beta-java17`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/latest/beta/Dockerfile.ubuntu.openjdk17) -- [`kernel-slim`, `kernel-slim-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk8) -- [`kernel-slim-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk11) -- [`kernel-slim-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk17) -- [`full`, `full-java8-openj9`, `latest`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/latest/full/Dockerfile.ubuntu.openjdk8) -- [`full-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/latest/full/Dockerfile.ubuntu.openjdk11) -- [`full-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/latest/full/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.11-kernel-slim-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.11/kernel-slim/Dockerfile.ubuntu.openjdk8) -- [`23.0.0.11-kernel-slim-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.11/kernel-slim/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.11-kernel-slim-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.11/kernel-slim/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.11-full-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.11/full/Dockerfile.ubuntu.openjdk8) -- [`23.0.0.11-full-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.11/full/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.11-full-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.11/full/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.9-kernel-slim-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk8) -- [`23.0.0.9-kernel-slim-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.9-kernel-slim-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.9-full-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.9/full/Dockerfile.ubuntu.openjdk8) -- [`23.0.0.9-full-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.9/full/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.9-full-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.9/full/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.6-kernel-slim-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.6/kernel-slim/Dockerfile.ubuntu.openjdk8) -- [`23.0.0.6-kernel-slim-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.6/kernel-slim/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.6-kernel-slim-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.6/kernel-slim/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.6-full-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.6/full/Dockerfile.ubuntu.openjdk8) -- [`23.0.0.6-full-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.6/full/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.6-full-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/c1f41e7b714db1e754819ceb1554c0f2b699bd29/releases/23.0.0.6/full/Dockerfile.ubuntu.openjdk17) +- [`beta`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/latest/beta/Dockerfile.ubuntu.openjdk8) + +- [`beta-java11`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/latest/beta/Dockerfile.ubuntu.openjdk11) + +- [`beta-java17`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/latest/beta/Dockerfile.ubuntu.openjdk17) + +- [`kernel-slim`, `kernel-slim-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk8) + +- [`kernel-slim-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk11) + +- [`kernel-slim-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk17) + +- [`full`, `full-java8-openj9`, `latest`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/latest/full/Dockerfile.ubuntu.openjdk8) + +- [`full-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/latest/full/Dockerfile.ubuntu.openjdk11) + +- [`full-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/latest/full/Dockerfile.ubuntu.openjdk17) + +- [`25.0.0.3-kernel-slim-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.3/kernel-slim/Dockerfile.ubuntu.openjdk8) + +- [`25.0.0.3-kernel-slim-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.3/kernel-slim/Dockerfile.ubuntu.openjdk11) + +- [`25.0.0.3-kernel-slim-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.3/kernel-slim/Dockerfile.ubuntu.openjdk17) + +- [`25.0.0.3-full-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.3/full/Dockerfile.ubuntu.openjdk8) + +- [`25.0.0.3-full-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.3/full/Dockerfile.ubuntu.openjdk11) + +- [`25.0.0.3-full-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.3/full/Dockerfile.ubuntu.openjdk17) + +- [`25.0.0.6-kernel-slim-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.6/kernel-slim/Dockerfile.ubuntu.openjdk8) + +- [`25.0.0.6-kernel-slim-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.6/kernel-slim/Dockerfile.ubuntu.openjdk11) + +- [`25.0.0.6-kernel-slim-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.6/kernel-slim/Dockerfile.ubuntu.openjdk17) + +- [`25.0.0.6-full-java8-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.6/full/Dockerfile.ubuntu.openjdk8) + +- [`25.0.0.6-full-java11-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.6/full/Dockerfile.ubuntu.openjdk11) + +- [`25.0.0.6-full-java17-openj9`](https://github.com/OpenLiberty/ci.docker/blob/8ab01f34341661854ed9c0db48f272fd2c053883/releases/25.0.0.6/full/Dockerfile.ubuntu.openjdk17) # Quick reference (cont.) diff --git a/open-liberty/metadata.json b/open-liberty/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/open-liberty/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/openjdk/README.md b/openjdk/README.md index 5cc649ca7a85..c6105533a3aa 100644 --- a/openjdk/README.md +++ b/openjdk/README.md @@ -42,27 +42,79 @@ The only tags which will continue to receive updates beyond July 2022 will be Ea ## Simple Tags -- [`22-ea-24-jdk-oraclelinux8`, `22-ea-24-oraclelinux8`, `22-ea-jdk-oraclelinux8`, `22-ea-oraclelinux8`, `22-jdk-oraclelinux8`, `22-oraclelinux8`, `22-ea-24-jdk-oracle`, `22-ea-24-oracle`, `22-ea-jdk-oracle`, `22-ea-oracle`, `22-jdk-oracle`, `22-oracle`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/oraclelinux8/Dockerfile) -- [`22-ea-24-jdk-oraclelinux7`, `22-ea-24-oraclelinux7`, `22-ea-jdk-oraclelinux7`, `22-ea-oraclelinux7`, `22-jdk-oraclelinux7`, `22-oraclelinux7`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/oraclelinux7/Dockerfile) -- [`22-ea-24-jdk-bookworm`, `22-ea-24-bookworm`, `22-ea-jdk-bookworm`, `22-ea-bookworm`, `22-jdk-bookworm`, `22-bookworm`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/bookworm/Dockerfile) -- [`22-ea-24-jdk-slim-bookworm`, `22-ea-24-slim-bookworm`, `22-ea-jdk-slim-bookworm`, `22-ea-slim-bookworm`, `22-jdk-slim-bookworm`, `22-slim-bookworm`, `22-ea-24-jdk-slim`, `22-ea-24-slim`, `22-ea-jdk-slim`, `22-ea-slim`, `22-jdk-slim`, `22-slim`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/slim-bookworm/Dockerfile) -- [`22-ea-24-jdk-bullseye`, `22-ea-24-bullseye`, `22-ea-jdk-bullseye`, `22-ea-bullseye`, `22-jdk-bullseye`, `22-bullseye`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/bullseye/Dockerfile) -- [`22-ea-24-jdk-slim-bullseye`, `22-ea-24-slim-bullseye`, `22-ea-jdk-slim-bullseye`, `22-ea-slim-bullseye`, `22-jdk-slim-bullseye`, `22-slim-bullseye`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/slim-bullseye/Dockerfile) -- [`22-ea-24-jdk-windowsservercore-ltsc2022`, `22-ea-24-windowsservercore-ltsc2022`, `22-ea-jdk-windowsservercore-ltsc2022`, `22-ea-windowsservercore-ltsc2022`, `22-jdk-windowsservercore-ltsc2022`, `22-windowsservercore-ltsc2022`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/windows/windowsservercore-ltsc2022/Dockerfile) -- [`22-ea-24-jdk-windowsservercore-1809`, `22-ea-24-windowsservercore-1809`, `22-ea-jdk-windowsservercore-1809`, `22-ea-windowsservercore-1809`, `22-jdk-windowsservercore-1809`, `22-windowsservercore-1809`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/windows/windowsservercore-1809/Dockerfile) -- [`22-ea-24-jdk-nanoserver-1809`, `22-ea-24-nanoserver-1809`, `22-ea-jdk-nanoserver-1809`, `22-ea-nanoserver-1809`, `22-jdk-nanoserver-1809`, `22-nanoserver-1809`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/windows/nanoserver-1809/Dockerfile) +- [`26-ea-2-jdk-oraclelinux9`, `26-ea-2-oraclelinux9`, `26-ea-jdk-oraclelinux9`, `26-ea-oraclelinux9`, `26-jdk-oraclelinux9`, `26-oraclelinux9`, `26-ea-2-jdk-oracle`, `26-ea-2-oracle`, `26-ea-jdk-oracle`, `26-ea-oracle`, `26-jdk-oracle`, `26-oracle`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/oraclelinux9/Dockerfile) + +- [`26-ea-2-jdk-oraclelinux8`, `26-ea-2-oraclelinux8`, `26-ea-jdk-oraclelinux8`, `26-ea-oraclelinux8`, `26-jdk-oraclelinux8`, `26-oraclelinux8`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/oraclelinux8/Dockerfile) + +- [`26-ea-2-jdk-bookworm`, `26-ea-2-bookworm`, `26-ea-jdk-bookworm`, `26-ea-bookworm`, `26-jdk-bookworm`, `26-bookworm`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/bookworm/Dockerfile) + +- [`26-ea-2-jdk-slim-bookworm`, `26-ea-2-slim-bookworm`, `26-ea-jdk-slim-bookworm`, `26-ea-slim-bookworm`, `26-jdk-slim-bookworm`, `26-slim-bookworm`, `26-ea-2-jdk-slim`, `26-ea-2-slim`, `26-ea-jdk-slim`, `26-ea-slim`, `26-jdk-slim`, `26-slim`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/slim-bookworm/Dockerfile) + +- [`26-ea-2-jdk-bullseye`, `26-ea-2-bullseye`, `26-ea-jdk-bullseye`, `26-ea-bullseye`, `26-jdk-bullseye`, `26-bullseye`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/bullseye/Dockerfile) + +- [`26-ea-2-jdk-slim-bullseye`, `26-ea-2-slim-bullseye`, `26-ea-jdk-slim-bullseye`, `26-ea-slim-bullseye`, `26-jdk-slim-bullseye`, `26-slim-bullseye`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/slim-bullseye/Dockerfile) + +- [`26-ea-2-jdk-windowsservercore-ltsc2025`, `26-ea-2-windowsservercore-ltsc2025`, `26-ea-jdk-windowsservercore-ltsc2025`, `26-ea-windowsservercore-ltsc2025`, `26-jdk-windowsservercore-ltsc2025`, `26-windowsservercore-ltsc2025`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`26-ea-2-jdk-windowsservercore-ltsc2022`, `26-ea-2-windowsservercore-ltsc2022`, `26-ea-jdk-windowsservercore-ltsc2022`, `26-ea-windowsservercore-ltsc2022`, `26-jdk-windowsservercore-ltsc2022`, `26-windowsservercore-ltsc2022`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`26-ea-2-jdk-nanoserver-ltsc2025`, `26-ea-2-nanoserver-ltsc2025`, `26-ea-jdk-nanoserver-ltsc2025`, `26-ea-nanoserver-ltsc2025`, `26-jdk-nanoserver-ltsc2025`, `26-nanoserver-ltsc2025`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/nanoserver-ltsc2025/Dockerfile) + +- [`26-ea-2-jdk-nanoserver-ltsc2022`, `26-ea-2-nanoserver-ltsc2022`, `26-ea-jdk-nanoserver-ltsc2022`, `26-ea-nanoserver-ltsc2022`, `26-jdk-nanoserver-ltsc2022`, `26-nanoserver-ltsc2022`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- [`25-ea-27-jdk-oraclelinux9`, `25-ea-27-oraclelinux9`, `25-ea-jdk-oraclelinux9`, `25-ea-oraclelinux9`, `25-jdk-oraclelinux9`, `25-oraclelinux9`, `25-ea-27-jdk-oracle`, `25-ea-27-oracle`, `25-ea-jdk-oracle`, `25-ea-oracle`, `25-jdk-oracle`, `25-oracle`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/oraclelinux9/Dockerfile) + +- [`25-ea-27-jdk-oraclelinux8`, `25-ea-27-oraclelinux8`, `25-ea-jdk-oraclelinux8`, `25-ea-oraclelinux8`, `25-jdk-oraclelinux8`, `25-oraclelinux8`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/oraclelinux8/Dockerfile) + +- [`25-ea-27-jdk-bookworm`, `25-ea-27-bookworm`, `25-ea-jdk-bookworm`, `25-ea-bookworm`, `25-jdk-bookworm`, `25-bookworm`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/bookworm/Dockerfile) + +- [`25-ea-27-jdk-slim-bookworm`, `25-ea-27-slim-bookworm`, `25-ea-jdk-slim-bookworm`, `25-ea-slim-bookworm`, `25-jdk-slim-bookworm`, `25-slim-bookworm`, `25-ea-27-jdk-slim`, `25-ea-27-slim`, `25-ea-jdk-slim`, `25-ea-slim`, `25-jdk-slim`, `25-slim`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/slim-bookworm/Dockerfile) + +- [`25-ea-27-jdk-bullseye`, `25-ea-27-bullseye`, `25-ea-jdk-bullseye`, `25-ea-bullseye`, `25-jdk-bullseye`, `25-bullseye`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/bullseye/Dockerfile) + +- [`25-ea-27-jdk-slim-bullseye`, `25-ea-27-slim-bullseye`, `25-ea-jdk-slim-bullseye`, `25-ea-slim-bullseye`, `25-jdk-slim-bullseye`, `25-slim-bullseye`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/slim-bullseye/Dockerfile) + +- [`25-ea-27-jdk-windowsservercore-ltsc2025`, `25-ea-27-windowsservercore-ltsc2025`, `25-ea-jdk-windowsservercore-ltsc2025`, `25-ea-windowsservercore-ltsc2025`, `25-jdk-windowsservercore-ltsc2025`, `25-windowsservercore-ltsc2025`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`25-ea-27-jdk-windowsservercore-ltsc2022`, `25-ea-27-windowsservercore-ltsc2022`, `25-ea-jdk-windowsservercore-ltsc2022`, `25-ea-windowsservercore-ltsc2022`, `25-jdk-windowsservercore-ltsc2022`, `25-windowsservercore-ltsc2022`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`25-ea-27-jdk-nanoserver-ltsc2025`, `25-ea-27-nanoserver-ltsc2025`, `25-ea-jdk-nanoserver-ltsc2025`, `25-ea-nanoserver-ltsc2025`, `25-jdk-nanoserver-ltsc2025`, `25-nanoserver-ltsc2025`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/nanoserver-ltsc2025/Dockerfile) + +- [`25-ea-27-jdk-nanoserver-ltsc2022`, `25-ea-27-nanoserver-ltsc2022`, `25-ea-jdk-nanoserver-ltsc2022`, `25-ea-nanoserver-ltsc2022`, `25-jdk-nanoserver-ltsc2022`, `25-nanoserver-ltsc2022`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/nanoserver-ltsc2022/Dockerfile) ## Shared Tags -- `22-ea-24-jdk`, `22-ea-24`, `22-ea-jdk`, `22-ea`, `22-jdk`, `22`: - - [`22-ea-24-jdk-oraclelinux8`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/oraclelinux8/Dockerfile) - - [`22-ea-24-jdk-windowsservercore-ltsc2022`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`22-ea-24-jdk-windowsservercore-1809`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/windows/windowsservercore-1809/Dockerfile) -- `22-ea-24-jdk-windowsservercore`, `22-ea-24-windowsservercore`, `22-ea-jdk-windowsservercore`, `22-ea-windowsservercore`, `22-jdk-windowsservercore`, `22-windowsservercore`: - - [`22-ea-24-jdk-windowsservercore-ltsc2022`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/windows/windowsservercore-ltsc2022/Dockerfile) - - [`22-ea-24-jdk-windowsservercore-1809`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/windows/windowsservercore-1809/Dockerfile) -- `22-ea-24-jdk-nanoserver`, `22-ea-24-nanoserver`, `22-ea-jdk-nanoserver`, `22-ea-nanoserver`, `22-jdk-nanoserver`, `22-nanoserver`: - - [`22-ea-24-jdk-nanoserver-1809`](https://github.com/docker-library/openjdk/blob/631df37756decaeb8c6c4e913ca51b9143d8d8c2/22/jdk/windows/nanoserver-1809/Dockerfile) +- `26-ea-2-jdk`, `26-ea-2`, `26-ea-jdk`, `26-ea`, `26-jdk`, `26`: + + - [`26-ea-2-jdk-oraclelinux9`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/oraclelinux9/Dockerfile) + - [`26-ea-2-jdk-windowsservercore-ltsc2025`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`26-ea-2-jdk-windowsservercore-ltsc2022`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `26-ea-2-jdk-windowsservercore`, `26-ea-2-windowsservercore`, `26-ea-jdk-windowsservercore`, `26-ea-windowsservercore`, `26-jdk-windowsservercore`, `26-windowsservercore`: + + - [`26-ea-2-jdk-windowsservercore-ltsc2025`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`26-ea-2-jdk-windowsservercore-ltsc2022`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `26-ea-2-jdk-nanoserver`, `26-ea-2-nanoserver`, `26-ea-jdk-nanoserver`, `26-ea-nanoserver`, `26-jdk-nanoserver`, `26-nanoserver`: + + - [`26-ea-2-jdk-nanoserver-ltsc2025`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/nanoserver-ltsc2025/Dockerfile) + - [`26-ea-2-jdk-nanoserver-ltsc2022`](https://github.com/docker-library/openjdk/blob/1b620ac8d237ffc31af5731ad0dd24d828180335/26/jdk/windows/nanoserver-ltsc2022/Dockerfile) + +- `25-ea-27-jdk`, `25-ea-27`, `25-ea-jdk`, `25-ea`, `25-jdk`, `25`: + + - [`25-ea-27-jdk-oraclelinux9`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/oraclelinux9/Dockerfile) + - [`25-ea-27-jdk-windowsservercore-ltsc2025`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`25-ea-27-jdk-windowsservercore-ltsc2022`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `25-ea-27-jdk-windowsservercore`, `25-ea-27-windowsservercore`, `25-ea-jdk-windowsservercore`, `25-ea-windowsservercore`, `25-jdk-windowsservercore`, `25-windowsservercore`: + + - [`25-ea-27-jdk-windowsservercore-ltsc2025`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/windowsservercore-ltsc2025/Dockerfile) + - [`25-ea-27-jdk-windowsservercore-ltsc2022`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/windowsservercore-ltsc2022/Dockerfile) + +- `25-ea-27-jdk-nanoserver`, `25-ea-27-nanoserver`, `25-ea-jdk-nanoserver`, `25-ea-nanoserver`, `25-jdk-nanoserver`, `25-nanoserver`: + + - [`25-ea-27-jdk-nanoserver-ltsc2025`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/nanoserver-ltsc2025/Dockerfile) + - [`25-ea-27-jdk-nanoserver-ltsc2022`](https://github.com/docker-library/openjdk/blob/621893d1b0548ef67dd11b985f94528da3581942/25/jdk/windows/nanoserver-ltsc2022/Dockerfile) # Quick reference (cont.) diff --git a/openjdk/metadata.json b/openjdk/metadata.json new file mode 100644 index 000000000000..e90624aca4ca --- /dev/null +++ b/openjdk/metadata.json @@ -0,0 +1,5 @@ +{ + "hub": { + "categories": [] + } +} diff --git a/oraclelinux/README.md b/oraclelinux/README.md index a0e2bbeb01a2..40f02a431059 100644 --- a/oraclelinux/README.md +++ b/oraclelinux/README.md @@ -24,14 +24,23 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`9`](https://github.com/oracle/container-images/blob/0b104fc77fda695fc7c749169a3b84f71f041468/9/Dockerfile) -- [`9-slim`](https://github.com/oracle/container-images/blob/0b104fc77fda695fc7c749169a3b84f71f041468/9-slim/Dockerfile) -- [`8.8`, `8`](https://github.com/oracle/container-images/blob/0b104fc77fda695fc7c749169a3b84f71f041468/8/Dockerfile) -- [`8-slim`](https://github.com/oracle/container-images/blob/0b104fc77fda695fc7c749169a3b84f71f041468/8-slim/Dockerfile) -- [`8-slim-fips`](https://github.com/oracle/container-images/blob/0b104fc77fda695fc7c749169a3b84f71f041468/8-slim-fips/Dockerfile) -- [`7.9`, `7`](https://github.com/oracle/container-images/blob/0b104fc77fda695fc7c749169a3b84f71f041468/7/Dockerfile) -- [`7-slim`](https://github.com/oracle/container-images/blob/0b104fc77fda695fc7c749169a3b84f71f041468/7-slim/Dockerfile) -- [`7-slim-fips`](https://github.com/oracle/container-images/blob/0b104fc77fda695fc7c749169a3b84f71f041468/7-slim-fips/Dockerfile) +- [`9`](https://github.com/oracle/container-images/blob/7f68a61d5c74c5c6ed1b75ba0f114b98cd2f304d/9/Dockerfile) + +- [`9-slim`](https://github.com/oracle/container-images/blob/7f68a61d5c74c5c6ed1b75ba0f114b98cd2f304d/9-slim/Dockerfile) + +- [`9-slim-fips`](https://github.com/oracle/container-images/blob/7f68a61d5c74c5c6ed1b75ba0f114b98cd2f304d/9-slim-fips/Dockerfile) + +- [`8.10`, `8`](https://github.com/oracle/container-images/blob/7f68a61d5c74c5c6ed1b75ba0f114b98cd2f304d/8/Dockerfile) + +- [`8-slim`](https://github.com/oracle/container-images/blob/7f68a61d5c74c5c6ed1b75ba0f114b98cd2f304d/8-slim/Dockerfile) + +- [`8-slim-fips`](https://github.com/oracle/container-images/blob/7f68a61d5c74c5c6ed1b75ba0f114b98cd2f304d/8-slim-fips/Dockerfile) + +- [`7.9`, `7`](https://github.com/oracle/container-images/blob/7f68a61d5c74c5c6ed1b75ba0f114b98cd2f304d/7/Dockerfile) + +- [`7-slim`](https://github.com/oracle/container-images/blob/7f68a61d5c74c5c6ed1b75ba0f114b98cd2f304d/7-slim/Dockerfile) + +- [`7-slim-fips`](https://github.com/oracle/container-images/blob/7f68a61d5c74c5c6ed1b75ba0f114b98cd2f304d/7-slim-fips/Dockerfile) # Quick reference (cont.) diff --git a/oraclelinux/metadata.json b/oraclelinux/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/oraclelinux/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/orientdb/README.md b/orientdb/README.md index e0b67100696f..28671f946652 100644 --- a/orientdb/README.md +++ b/orientdb/README.md @@ -24,14 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.2.24`, `3.2`, `latest`](https://github.com/orientechnologies/orientdb-docker/blob/503bc2be695859be042b1ac701fe8aeeea5f626f/release/3.2.x/3.2.24/Dockerfile) -- [`3.2.24-tp3`, `3.2-tp3`](https://github.com/orientechnologies/orientdb-docker/blob/503bc2be695859be042b1ac701fe8aeeea5f626f/release/3.2.x/3.2.24-tp3/Dockerfile) +- [`3.2.41`, `3.2`, `latest`](https://github.com/orientechnologies/orientdb-docker/blob/b2238e6ffeb25c54ae1fff87e0864401acaf612f/release/3.2.x/3.2.41/Dockerfile) + +- [`3.2.41-tp3`, `3.2-tp3`](https://github.com/orientechnologies/orientdb-docker/blob/b2238e6ffeb25c54ae1fff87e0864401acaf612f/release/3.2.x/3.2.41-tp3/Dockerfile) + - [`3.1.20`, `3.1`](https://github.com/orientechnologies/orientdb-docker/blob/a8a42acbe19dad60a051afe08ed625e66587dd37/release/3.1.x/3.1.20/Dockerfile) + - [`3.1.20-tp3`, `3.1-tp3`](https://github.com/orientechnologies/orientdb-docker/blob/a8a42acbe19dad60a051afe08ed625e66587dd37/release/3.1.x/3.1.20-tp3/Dockerfile) -- [`3.0.44`, `3.0`](https://github.com/orientechnologies/orientdb-docker/blob/a8a42acbe19dad60a051afe08ed625e66587dd37/release/3.0.x/3.0.44/Dockerfile) -- [`3.0.44-tp3`, `3.0-tp3`](https://github.com/orientechnologies/orientdb-docker/blob/a8a42acbe19dad60a051afe08ed625e66587dd37/release/3.0.x/3.0.44-tp3/Dockerfile) -- [`2.2.37`, `2.2`](https://github.com/orientechnologies/orientdb-docker/blob/a8a42acbe19dad60a051afe08ed625e66587dd37/release/2.2.x/2.2.37/Dockerfile) -- [`2.2.37-spatial`](https://github.com/orientechnologies/orientdb-docker/blob/a8a42acbe19dad60a051afe08ed625e66587dd37/release/2.2.x/2.2.37-spatial/Dockerfile) # Quick reference (cont.) diff --git a/orientdb/metadata.json b/orientdb/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/orientdb/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/percona/README.md b/percona/README.md index 7b5f01735aa0..ef645ac6870b 100644 --- a/percona/README.md +++ b/percona/README.md @@ -24,13 +24,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.0.34-26-centos`, `8.0-centos`, `8-centos`, `8.0.34-26`, `8.0`, `8`, `ps-8.0.34-26`, `ps-8.0`, `ps-8`](https://github.com/percona/percona-docker/blob/565f49b8be3a1efa056fde70e10d638ad159516a/percona-server-8.0/Dockerfile) -- [`5.7.43-centos`, `5.7-centos`, `5-centos`, `centos`, `5.7.43`, `5.7`, `5`, `ps-5.7.43`, `ps-5.7`, `ps-5`](https://github.com/percona/percona-docker/blob/a11f997b281686769392ea14aa02daee97320c51/percona-server-5.7/Dockerfile-dockerhub) -- [`5.6.51-2-centos`, `5.6-centos`, `5.6.51-2`, `5.6`, `ps-5.6.51-2`, `ps-5.6`](https://github.com/percona/percona-docker/blob/4510d49bcce5cfce58a42c198d55399b144add83/percona-server-5.6/Dockerfile-dockerhub) -- [`psmdb-6.0.6`, `psmdb-6.0`](https://github.com/percona/percona-docker/blob/80ab68b2d84c7c17c8cbc07edb35e35399fd0a54/percona-server-mongodb-6.0/Dockerfile) -- [`psmdb-5.0.18`, `psmdb-5.0`](https://github.com/percona/percona-docker/blob/80ab68b2d84c7c17c8cbc07edb35e35399fd0a54/percona-server-mongodb-5.0/Dockerfile) -- [`psmdb-4.4.22`, `psmdb-4.4`](https://github.com/percona/percona-docker/blob/80ab68b2d84c7c17c8cbc07edb35e35399fd0a54/percona-server-mongodb-4.4/Dockerfile) -- [`psmdb-4.2.24`, `psmdb-4.2`](https://github.com/percona/percona-docker/blob/80ab68b2d84c7c17c8cbc07edb35e35399fd0a54/percona-server-mongodb-4.2/Dockerfile) +- [`8.0.42-33-centos`, `8.0-centos`, `8-centos`, `8.0.42-33`, `8.0`, `8`, `ps-8.0.42-33`, `ps-8.0`, `ps-8`](https://github.com/percona/percona-docker/blob/9cd781adb27010da39faab5daca25c1e72db0af4/percona-server-8.0/Dockerfile-dockerhub) + +- [`psmdb-8.0.4`, `psmdb-8.0`](https://github.com/percona/percona-docker/blob/01836bbd1b62ad6ee28226986b2d7fff660523b6/percona-server-mongodb-8.0/Dockerfile-dockerhub) + +- [`psmdb-7.0.16`, `psmdb-7.0`](https://github.com/percona/percona-docker/blob/01836bbd1b62ad6ee28226986b2d7fff660523b6/percona-server-mongodb-7.0/Dockerfile-dockerhub) + +- [`psmdb-6.0.21`, `psmdb-6.0`](https://github.com/percona/percona-docker/blob/01836bbd1b62ad6ee28226986b2d7fff660523b6/percona-server-mongodb-6.0/Dockerfile-dockerhub) # Quick reference (cont.) @@ -93,13 +93,12 @@ $ docker run -it --rm percona mysql -hsome.mysql.host -usome-mysql-user -p More information about the MySQL command line client can be found in the [MySQL documentation](http://dev.mysql.com/doc/en/mysql.html) -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `percona`: +Example `compose.yaml` for `percona`: ```yaml # Use root/example as user/password credentials -version: '3.1' services: @@ -116,9 +115,7 @@ services: - 8080:8080 ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/9efeec18b6b2ed232cf0fbd3914b6211e16e242c/percona/stack.yml) - -Run `docker stack deploy -c stack.yml percona` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Container shell access and viewing MySQL logs @@ -174,7 +171,7 @@ By default, `root` can connect from anywhere. This option restricts root connect ### `MYSQL_DATABASE` -This variable is optional and allows you to specify the name of a database to be created on image startup. If a user/password was supplied (see below) then that user will be granted superuser access ([corresponding to `GRANT ALL`](http://dev.mysql.com/doc/en/adding-users.html)) to this database. +This variable is optional and allows you to specify the name of a database to be created on image startup. If a user/password was supplied (see below) then that user will be granted superuser access ([corresponding to `GRANT ALL`](https://dev.mysql.com/doc/refman/en/creating-accounts.html)) to this database. ### `MYSQL_USER`, `MYSQL_PASSWORD` @@ -188,7 +185,7 @@ This is an optional variable. Set to `yes` to allow the container to be started ### `MYSQL_RANDOM_ROOT_PASSWORD` -This is an optional variable. Set to `yes` to generate a random initial password for the root user (using `pwgen`). The generated root password will be printed to stdout (`GENERATED ROOT PASSWORD: .....`). +This is an optional variable. Set to `yes` to generate a random initial password for the root user (using `pwmake`). The generated root password will be printed to stdout (`GENERATED ROOT PASSWORD: .....`). ### `MYSQL_ONETIME_PASSWORD` @@ -216,9 +213,17 @@ $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-ro Currently, this is only supported for `MYSQL_ROOT_PASSWORD`, `MYSQL_ROOT_HOST`, `MYSQL_DATABASE`, `MYSQL_USER`, and `MYSQL_PASSWORD`. +## Telemetry + +Starting with Percona Server 8.0.35-27, telemetry will be enabled by default. If you decide not to send usage data to Percona, you can set the `PERCONA_TELEMETRY_DISABLE=1` environment variable. For example: + +```console +$ docker run --name some-mysql -e PERCONA_TELEMETRY_DISABLE=1 -d percona:tag +``` + # Initializing a fresh instance -When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql` and `.sql.gz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. You can easily populate your `percona` services by [mounting a SQL dump into that directory](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-file-as-a-data-volume) and provide [custom images](https://docs.docker.com/reference/builder/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. +When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql` and `.sql.gz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. You can easily populate your `percona` services by [mounting a SQL dump into that directory](https://docs.docker.com/storage/bind-mounts/) and provide [custom images](https://docs.docker.com/reference/dockerfile/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. # Caveats @@ -226,8 +231,8 @@ When a container is started for the first time, a new database with the specifie Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `percona` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: @@ -242,7 +247,7 @@ The `-v /my/own/datadir:/var/lib/mysql` part of the command mounts the `/my/own/ ## No connections until MySQL init completes -If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker-compose`, which start several containers simultaneously. +If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as Docker Compose, which start several containers simultaneously. If the application you're trying to connect to MySQL does not handle MySQL downtime or waiting for MySQL to start gracefully, then a putting a connect-retry loop before the service starts might be necessary. For an example of such an implementation in the official images, see [WordPress](https://github.com/docker-library/wordpress/blob/1b48b4bccd7adb0f7ea1431c7b470a40e186f3da/docker-entrypoint.sh#L195-L235) or [Bonita](https://github.com/docker-library/docs/blob/9660a0cccb87d8db842f33bc0578d769caaf3ba9/bonita/stack.yml#L28-L44). diff --git a/percona/stack.yml b/percona/compose.yaml similarity index 94% rename from percona/stack.yml rename to percona/compose.yaml index 9390e2f93a4a..60a9ed77ba10 100644 --- a/percona/stack.yml +++ b/percona/compose.yaml @@ -1,5 +1,4 @@ # Use root/example as user/password credentials -version: '3.1' services: diff --git a/percona/content.md b/percona/content.md index 84530d3e69ec..9e02530ce86c 100644 --- a/percona/content.md +++ b/percona/content.md @@ -38,9 +38,9 @@ $ docker run -it --rm %%IMAGE%% mysql -hsome.mysql.host -usome-mysql-user -p More information about the MySQL command line client can be found in the [MySQL documentation](http://dev.mysql.com/doc/en/mysql.html) -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Container shell access and viewing MySQL logs @@ -96,7 +96,7 @@ By default, `root` can connect from anywhere. This option restricts root connect ### `MYSQL_DATABASE` -This variable is optional and allows you to specify the name of a database to be created on image startup. If a user/password was supplied (see below) then that user will be granted superuser access ([corresponding to `GRANT ALL`](http://dev.mysql.com/doc/en/adding-users.html)) to this database. +This variable is optional and allows you to specify the name of a database to be created on image startup. If a user/password was supplied (see below) then that user will be granted superuser access ([corresponding to `GRANT ALL`](https://dev.mysql.com/doc/refman/en/creating-accounts.html)) to this database. ### `MYSQL_USER`, `MYSQL_PASSWORD` @@ -110,7 +110,7 @@ This is an optional variable. Set to `yes` to allow the container to be started ### `MYSQL_RANDOM_ROOT_PASSWORD` -This is an optional variable. Set to `yes` to generate a random initial password for the root user (using `pwgen`). The generated root password will be printed to stdout (`GENERATED ROOT PASSWORD: .....`). +This is an optional variable. Set to `yes` to generate a random initial password for the root user (using `pwmake`). The generated root password will be printed to stdout (`GENERATED ROOT PASSWORD: .....`). ### `MYSQL_ONETIME_PASSWORD` @@ -138,9 +138,17 @@ $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-ro Currently, this is only supported for `MYSQL_ROOT_PASSWORD`, `MYSQL_ROOT_HOST`, `MYSQL_DATABASE`, `MYSQL_USER`, and `MYSQL_PASSWORD`. +## Telemetry + +Starting with Percona Server 8.0.35-27, telemetry will be enabled by default. If you decide not to send usage data to Percona, you can set the `PERCONA_TELEMETRY_DISABLE=1` environment variable. For example: + +```console +$ docker run --name some-mysql -e PERCONA_TELEMETRY_DISABLE=1 -d %%IMAGE%%:tag +``` + # Initializing a fresh instance -When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql` and `.sql.gz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. You can easily populate your `%%IMAGE%%` services by [mounting a SQL dump into that directory](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-file-as-a-data-volume) and provide [custom images](https://docs.docker.com/reference/builder/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. +When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql` and `.sql.gz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. You can easily populate your `%%IMAGE%%` services by [mounting a SQL dump into that directory](https://docs.docker.com/storage/bind-mounts/) and provide [custom images](https://docs.docker.com/reference/dockerfile/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. # Caveats @@ -148,8 +156,8 @@ When a container is started for the first time, a new database with the specifie Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `%%IMAGE%%` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: @@ -164,7 +172,7 @@ The `-v /my/own/datadir:/var/lib/mysql` part of the command mounts the `/my/own/ ## No connections until MySQL init completes -If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as `docker-compose`, which start several containers simultaneously. +If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as Docker Compose, which start several containers simultaneously. If the application you're trying to connect to MySQL does not handle MySQL downtime or waiting for MySQL to start gracefully, then a putting a connect-retry loop before the service starts might be necessary. For an example of such an implementation in the official images, see [WordPress](https://github.com/docker-library/wordpress/blob/1b48b4bccd7adb0f7ea1431c7b470a40e186f3da/docker-entrypoint.sh#L195-L235) or [Bonita](https://github.com/docker-library/docs/blob/9660a0cccb87d8db842f33bc0578d769caaf3ba9/bonita/stack.yml#L28-L44). diff --git a/percona/metadata.json b/percona/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/percona/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/perl/README.md b/perl/README.md index 857b73fa51ee..b407d357aceb 100644 --- a/perl/README.md +++ b/perl/README.md @@ -24,46 +24,69 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.38.0`, `5.38`, `5`, `latest`, `stable`, `5.38.0-bookworm`, `5.38-bookworm`, `5-bookworm`, `bookworm`, `stable-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-main-bookworm/Dockerfile) -- [`5.38.0-bullseye`, `5.38-bullseye`, `5-bullseye`, `bullseye`, `stable-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-main-bullseye/Dockerfile) -- [`5.38.0-buster`, `5.38-buster`, `5-buster`, `buster`, `stable-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-main-buster/Dockerfile) -- [`5.38.0-slim`, `5.38-slim`, `5-slim`, `slim`, `stable-slim`, `5.38.0-slim-bookworm`, `5.38-slim-bookworm`, `5-slim-bookworm`, `slim-bookworm`, `stable-slim-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-slim-bookworm/Dockerfile) -- [`5.38.0-slim-bullseye`, `5.38-slim-bullseye`, `5-slim-bullseye`, `slim-bullseye`, `stable-slim-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-slim-bullseye/Dockerfile) -- [`5.38.0-slim-buster`, `5.38-slim-buster`, `5-slim-buster`, `slim-buster`, `stable-slim-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-slim-buster/Dockerfile) -- [`5.38.0-threaded`, `5.38-threaded`, `5-threaded`, `threaded`, `stable-threaded`, `5.38.0-threaded-bookworm`, `5.38-threaded-bookworm`, `5-threaded-bookworm`, `threaded-bookworm`, `stable-threaded-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-main,threaded-bookworm/Dockerfile) -- [`5.38.0-threaded-bullseye`, `5.38-threaded-bullseye`, `5-threaded-bullseye`, `threaded-bullseye`, `stable-threaded-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-main,threaded-bullseye/Dockerfile) -- [`5.38.0-threaded-buster`, `5.38-threaded-buster`, `5-threaded-buster`, `threaded-buster`, `stable-threaded-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-main,threaded-buster/Dockerfile) -- [`5.38.0-slim-threaded`, `5.38-slim-threaded`, `5-slim-threaded`, `slim-threaded`, `stable-slim-threaded`, `5.38.0-slim-threaded-bookworm`, `5.38-slim-threaded-bookworm`, `5-slim-threaded-bookworm`, `slim-threaded-bookworm`, `stable-slim-threaded-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-slim,threaded-bookworm/Dockerfile) -- [`5.38.0-slim-threaded-bullseye`, `5.38-slim-threaded-bullseye`, `5-slim-threaded-bullseye`, `slim-threaded-bullseye`, `stable-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-slim,threaded-bullseye/Dockerfile) -- [`5.38.0-slim-threaded-buster`, `5.38-slim-threaded-buster`, `5-slim-threaded-buster`, `slim-threaded-buster`, `stable-slim-threaded-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.038.000-slim,threaded-buster/Dockerfile) -- [`5.36.1`, `5.36`, `5.36.1-bookworm`, `5.36-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-main-bookworm/Dockerfile) -- [`5.36.1-bullseye`, `5.36-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-main-bullseye/Dockerfile) -- [`5.36.1-buster`, `5.36-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-main-buster/Dockerfile) -- [`5.36.1-slim`, `5.36-slim`, `5.36.1-slim-bookworm`, `5.36-slim-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-slim-bookworm/Dockerfile) -- [`5.36.1-slim-bullseye`, `5.36-slim-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-slim-bullseye/Dockerfile) -- [`5.36.1-slim-buster`, `5.36-slim-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-slim-buster/Dockerfile) -- [`5.36.1-threaded`, `5.36-threaded`, `5.36.1-threaded-bookworm`, `5.36-threaded-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-main,threaded-bookworm/Dockerfile) -- [`5.36.1-threaded-bullseye`, `5.36-threaded-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-main,threaded-bullseye/Dockerfile) -- [`5.36.1-threaded-buster`, `5.36-threaded-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-main,threaded-buster/Dockerfile) -- [`5.36.1-slim-threaded`, `5.36-slim-threaded`, `5.36.1-slim-threaded-bookworm`, `5.36-slim-threaded-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-slim,threaded-bookworm/Dockerfile) -- [`5.36.1-slim-threaded-bullseye`, `5.36-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-slim,threaded-bullseye/Dockerfile) -- [`5.36.1-slim-threaded-buster`, `5.36-slim-threaded-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.036.001-slim,threaded-buster/Dockerfile) -- [`5.34.1`, `5.34`, `5.34.1-bullseye`, `5.34-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.034.001-main-bullseye/Dockerfile) -- [`5.34.1-buster`, `5.34-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.034.001-main-buster/Dockerfile) -- [`5.34.1-slim`, `5.34-slim`, `5.34.1-slim-bullseye`, `5.34-slim-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.034.001-slim-bullseye/Dockerfile) -- [`5.34.1-slim-buster`, `5.34-slim-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.034.001-slim-buster/Dockerfile) -- [`5.34.1-threaded`, `5.34-threaded`, `5.34.1-threaded-bullseye`, `5.34-threaded-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.034.001-main,threaded-bullseye/Dockerfile) -- [`5.34.1-threaded-buster`, `5.34-threaded-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.034.001-main,threaded-buster/Dockerfile) -- [`5.34.1-slim-threaded`, `5.34-slim-threaded`, `5.34.1-slim-threaded-bullseye`, `5.34-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.034.001-slim,threaded-bullseye/Dockerfile) -- [`5.34.1-slim-threaded-buster`, `5.34-slim-threaded-buster`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.034.001-slim,threaded-buster/Dockerfile) -- [`5.39.4`, `5.39`, `devel`, `5.39.4-bookworm`, `5.39-bookworm`, `devel-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.039.004-main-bookworm/Dockerfile) -- [`5.39.4-bullseye`, `5.39-bullseye`, `devel-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.039.004-main-bullseye/Dockerfile) -- [`5.39.4-slim`, `5.39-slim`, `devel-slim`, `5.39.4-slim-bookworm`, `5.39-slim-bookworm`, `devel-slim-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.039.004-slim-bookworm/Dockerfile) -- [`5.39.4-slim-bullseye`, `5.39-slim-bullseye`, `devel-slim-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.039.004-slim-bullseye/Dockerfile) -- [`5.39.4-threaded`, `5.39-threaded`, `devel-threaded`, `5.39.4-threaded-bookworm`, `5.39-threaded-bookworm`, `devel-threaded-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.039.004-main,threaded-bookworm/Dockerfile) -- [`5.39.4-threaded-bullseye`, `5.39-threaded-bullseye`, `devel-threaded-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.039.004-main,threaded-bullseye/Dockerfile) -- [`5.39.4-slim-threaded`, `5.39-slim-threaded`, `devel-slim-threaded`, `5.39.4-slim-threaded-bookworm`, `5.39-slim-threaded-bookworm`, `devel-slim-threaded-bookworm`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.039.004-slim,threaded-bookworm/Dockerfile) -- [`5.39.4-slim-threaded-bullseye`, `5.39-slim-threaded-bullseye`, `devel-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/0305e3f2fb422d77f1cf7392bc340f373b3589b5/5.039.004-slim,threaded-bullseye/Dockerfile) +- [`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/876d8d6e4273ac9361142cd488f4717d880668de/5.040.002-main-bookworm/Dockerfile) + +- [`5.40.2-bullseye`, `5.40-bullseye`, `5-bullseye`, `bullseye`, `stable-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.040.002-main-bullseye/Dockerfile) + +- [`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/876d8d6e4273ac9361142cd488f4717d880668de/5.040.002-slim-bookworm/Dockerfile) + +- [`5.40.2-slim-bullseye`, `5.40-slim-bullseye`, `5-slim-bullseye`, `slim-bullseye`, `stable-slim-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.040.002-slim-bullseye/Dockerfile) + +- [`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/876d8d6e4273ac9361142cd488f4717d880668de/5.040.002-main,threaded-bookworm/Dockerfile) + +- [`5.40.2-threaded-bullseye`, `5.40-threaded-bullseye`, `5-threaded-bullseye`, `threaded-bullseye`, `stable-threaded-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.040.002-main,threaded-bullseye/Dockerfile) + +- [`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/876d8d6e4273ac9361142cd488f4717d880668de/5.040.002-slim,threaded-bookworm/Dockerfile) + +- [`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/876d8d6e4273ac9361142cd488f4717d880668de/5.040.002-slim,threaded-bullseye/Dockerfile) + +- [`5.38.4`, `5.38`, `5.38.4-bookworm`, `5.38-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.038.004-main-bookworm/Dockerfile) + +- [`5.38.4-bullseye`, `5.38-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.038.004-main-bullseye/Dockerfile) + +- [`5.38.4-slim`, `5.38-slim`, `5.38.4-slim-bookworm`, `5.38-slim-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.038.004-slim-bookworm/Dockerfile) + +- [`5.38.4-slim-bullseye`, `5.38-slim-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.038.004-slim-bullseye/Dockerfile) + +- [`5.38.4-threaded`, `5.38-threaded`, `5.38.4-threaded-bookworm`, `5.38-threaded-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.038.004-main,threaded-bookworm/Dockerfile) + +- [`5.38.4-threaded-bullseye`, `5.38-threaded-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.038.004-main,threaded-bullseye/Dockerfile) + +- [`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/876d8d6e4273ac9361142cd488f4717d880668de/5.038.004-slim,threaded-bookworm/Dockerfile) + +- [`5.38.4-slim-threaded-bullseye`, `5.38-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.038.004-slim,threaded-bullseye/Dockerfile) + +- [`5.36.3`, `5.36`, `5.36.3-bookworm`, `5.36-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.036.003-main-bookworm/Dockerfile) + +- [`5.36.3-bullseye`, `5.36-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.036.003-main-bullseye/Dockerfile) + +- [`5.36.3-slim`, `5.36-slim`, `5.36.3-slim-bookworm`, `5.36-slim-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.036.003-slim-bookworm/Dockerfile) + +- [`5.36.3-slim-bullseye`, `5.36-slim-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.036.003-slim-bullseye/Dockerfile) + +- [`5.36.3-threaded`, `5.36-threaded`, `5.36.3-threaded-bookworm`, `5.36-threaded-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.036.003-main,threaded-bookworm/Dockerfile) + +- [`5.36.3-threaded-bullseye`, `5.36-threaded-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.036.003-main,threaded-bullseye/Dockerfile) + +- [`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/876d8d6e4273ac9361142cd488f4717d880668de/5.036.003-slim,threaded-bookworm/Dockerfile) + +- [`5.36.3-slim-threaded-bullseye`, `5.36-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.036.003-slim,threaded-bullseye/Dockerfile) + +- [`5.41.13`, `5.41`, `devel`, `5.41.13-bookworm`, `5.41-bookworm`, `devel-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.041.013-main-bookworm/Dockerfile) + +- [`5.41.13-bullseye`, `5.41-bullseye`, `devel-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.041.013-main-bullseye/Dockerfile) + +- [`5.41.13-slim`, `5.41-slim`, `devel-slim`, `5.41.13-slim-bookworm`, `5.41-slim-bookworm`, `devel-slim-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.041.013-slim-bookworm/Dockerfile) + +- [`5.41.13-slim-bullseye`, `5.41-slim-bullseye`, `devel-slim-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.041.013-slim-bullseye/Dockerfile) + +- [`5.41.13-threaded`, `5.41-threaded`, `devel-threaded`, `5.41.13-threaded-bookworm`, `5.41-threaded-bookworm`, `devel-threaded-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.041.013-main,threaded-bookworm/Dockerfile) + +- [`5.41.13-threaded-bullseye`, `5.41-threaded-bullseye`, `devel-threaded-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.041.013-main,threaded-bullseye/Dockerfile) + +- [`5.41.13-slim-threaded`, `5.41-slim-threaded`, `devel-slim-threaded`, `5.41.13-slim-threaded-bookworm`, `5.41-slim-threaded-bookworm`, `devel-slim-threaded-bookworm`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.041.013-slim,threaded-bookworm/Dockerfile) + +- [`5.41.13-slim-threaded-bullseye`, `5.41-slim-threaded-bullseye`, `devel-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/876d8d6e4273ac9361142cd488f4717d880668de/5.041.013-slim,threaded-bullseye/Dockerfile) # Quick reference (cont.) @@ -128,7 +151,7 @@ See also [Perl/docker-perl#26](https://github.com/Perl/docker-perl/issues/26) fo ## Signal handling behavior notice -As Perl will run as PID 1 by default in containers (unless an [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) is set,) special care needs to be considered when expecting to send signals (particularly SIGINT or SIGTERM) to it. For example, running +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 ```console $ docker run -it --name sleeping_beauty --rm perl:5.34 perl -E 'sleep 300' @@ -160,7 +183,7 @@ See also [Perl/docker-perl#140](https://github.com/Perl/docker-perl/issues/140) ## Example: Creating a reusable Carton image for Perl projects -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/engine/reference/builder/#onbuild) instruction in its `Dockerfile`, like this: +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: ```dockerfile FROM perl:5.34 @@ -179,7 +202,7 @@ Then, in your Carton project, you can now reduce your project's `Dockerfile` int 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: -- 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/engine/reference/builder/#onbuild) work and plan appropriately. +- 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. - 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. # Image Variants @@ -190,7 +213,7 @@ The `perl` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like bookworm, bullseye, or buster 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. +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. 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. diff --git a/perl/content.md b/perl/content.md index 9b42b176d579..dc1cda262c44 100644 --- a/perl/content.md +++ b/perl/content.md @@ -42,7 +42,7 @@ See also [Perl/docker-perl#26](https://github.com/Perl/docker-perl/issues/26) fo ## Signal handling behavior notice -As Perl will run as PID 1 by default in containers (unless an [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) is set,) special care needs to be considered when expecting to send signals (particularly SIGINT or SIGTERM) to it. For example, running +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 ```console $ docker run -it --name sleeping_beauty --rm %%IMAGE%%:5.34 perl -E 'sleep 300' @@ -74,7 +74,7 @@ See also [Perl/docker-perl#140](https://github.com/Perl/docker-perl/issues/140) ## Example: Creating a reusable Carton image for Perl projects -Suppose you have a project that uses [Carton](https://metacpan.org/pod/Carton) to manage Perl dependencies. You can create a `%%IMAGE%%:carton` image that makes use of the [ONBUILD](https://docs.docker.com/engine/reference/builder/#onbuild) instruction in its `Dockerfile`, like this: +Suppose you have a project that uses [Carton](https://metacpan.org/pod/Carton) to manage Perl dependencies. You can create a `%%IMAGE%%:carton` image that makes use of the [ONBUILD](https://docs.docker.com/reference/dockerfile/#onbuild) instruction in its `Dockerfile`, like this: ```dockerfile FROM %%IMAGE%%:5.34 @@ -93,5 +93,5 @@ Then, in your Carton project, you can now reduce your project's `Dockerfile` int Having a single `%%IMAGE%%: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: -- 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/engine/reference/builder/#onbuild) work and plan appropriately. +- 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. - 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. diff --git a/perl/metadata.json b/perl/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/perl/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/photon/README.md b/photon/README.md index 5cf5d5d488b4..e136d5bb01fb 100644 --- a/photon/README.md +++ b/photon/README.md @@ -24,9 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.0`, `5.0-20231028`, `latest`](https://github.com/vmware/photon-docker-image/blob/3c3e9e5bb580a2867f636ceb9c1b51b4ad266f1c/docker/Dockerfile) -- [`4.0`, `4.0-20231028`](https://github.com/vmware/photon-docker-image/blob/1da3d47aaac6993510c7079e4896261169849789/docker/Dockerfile) -- [`3.0`, `3.0-20231028`](https://github.com/vmware/photon-docker-image/blob/8a0aa578c5e2559d9c6f836baa53bd17121eeddd/docker/Dockerfile) +- [`5.0`, `5.0-20250617`, `latest`](https://github.com/vmware/photon-docker-image/blob/d804fe9bb9514bca6a7fa885538e269f2caade73/docker/Dockerfile) + +- [`4.0`, `4.0-20250518`](https://github.com/vmware/photon-docker-image/blob/0b2ace4fa57bbd1d03b60915156c9d357bcbe698/docker/Dockerfile) + +- [`3.0`, `3.0-20250316`](https://github.com/vmware/photon-docker-image/blob/f848d5df815c0afe76b42a608d49df0e87af51c2/docker/Dockerfile) # Quick reference (cont.) diff --git a/photon/metadata.json b/photon/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/photon/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/php-zendserver/README-short.txt b/php-zendserver/README-short.txt index af398674f42d..0f4e14743a98 100644 --- a/php-zendserver/README-short.txt +++ b/php-zendserver/README-short.txt @@ -1 +1 @@ -Zend Server - the integrated PHP application platform for mobile and web apps. +DEPRECATED; Zend Server - the integrated PHP application platform for mobile and web apps. diff --git a/php-zendserver/README.md b/php-zendserver/README.md index 73bbfb9c560a..bcb614fa8271 100644 --- a/php-zendserver/README.md +++ b/php-zendserver/README.md @@ -14,6 +14,10 @@ WARNING: --> +# **DEPRECATION NOTICE** + +This image is not actively maintained (and [has not been for years](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fphp-zendserver)). It is highly recommended for users to seek out alternatives. + # Quick reference - **Maintained by**: @@ -24,10 +28,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.5`, `8.5-php5.6`, `5.6`](https://github.com/zendtech/php-zendserver-docker/blob/bcd65b82acb4f3b5b67f8c657c52f08bc52d8789/8.5/5.6/Dockerfile) -- [`9.1`](https://github.com/zendtech/php-zendserver-docker/blob/bcd65b82acb4f3b5b67f8c657c52f08bc52d8789/9.1/7.1/Dockerfile) -- [`2019.0`](https://github.com/zendtech/php-zendserver-docker/blob/bcd65b82acb4f3b5b67f8c657c52f08bc52d8789/2019.0/Dockerfile) -- [`2021.0`, `latest`](https://github.com/zendtech/php-zendserver-docker/blob/bcd65b82acb4f3b5b67f8c657c52f08bc52d8789/2021.0/Dockerfile) +**No supported tags** # Quick reference (cont.) @@ -35,7 +36,7 @@ WARNING: [Zend Support Center](https://www.zend.com/en/support-center) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/php-zendserver/) + **No supported architectures** - **Published image artifact details**: [repo-info repo's `repos/php-zendserver/` directory](https://github.com/docker-library/repo-info/blob/master/repos/php-zendserver) ([history](https://github.com/docker-library/repo-info/commits/master/repos/php-zendserver)) diff --git a/php-zendserver/deprecated.md b/php-zendserver/deprecated.md new file mode 100644 index 000000000000..3758d1cd2b10 --- /dev/null +++ b/php-zendserver/deprecated.md @@ -0,0 +1 @@ +This image is not actively maintained (and [has not been for years](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fphp-zendserver)). It is highly recommended for users to seek out alternatives. diff --git a/php-zendserver/metadata.json b/php-zendserver/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/php-zendserver/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/php/README.md b/php/README.md index 960dda599a11..da02754229ed 100644 --- a/php/README.md +++ b/php/README.md @@ -24,93 +24,117 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.3.0RC6-cli-bookworm`, `8.3-rc-cli-bookworm`, `8.3.0RC6-bookworm`, `8.3-rc-bookworm`, `8.3.0RC6-cli`, `8.3-rc-cli`, `8.3.0RC6`, `8.3-rc`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/bookworm/cli/Dockerfile) -- [`8.3.0RC6-apache-bookworm`, `8.3-rc-apache-bookworm`, `8.3.0RC6-apache`, `8.3-rc-apache`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/bookworm/apache/Dockerfile) -- [`8.3.0RC6-fpm-bookworm`, `8.3-rc-fpm-bookworm`, `8.3.0RC6-fpm`, `8.3-rc-fpm`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/bookworm/fpm/Dockerfile) -- [`8.3.0RC6-zts-bookworm`, `8.3-rc-zts-bookworm`, `8.3.0RC6-zts`, `8.3-rc-zts`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/bookworm/zts/Dockerfile) -- [`8.3.0RC6-cli-bullseye`, `8.3-rc-cli-bullseye`, `8.3.0RC6-bullseye`, `8.3-rc-bullseye`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/bullseye/cli/Dockerfile) -- [`8.3.0RC6-apache-bullseye`, `8.3-rc-apache-bullseye`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/bullseye/apache/Dockerfile) -- [`8.3.0RC6-fpm-bullseye`, `8.3-rc-fpm-bullseye`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/bullseye/fpm/Dockerfile) -- [`8.3.0RC6-zts-bullseye`, `8.3-rc-zts-bullseye`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/bullseye/zts/Dockerfile) -- [`8.3.0RC6-cli-alpine3.18`, `8.3-rc-cli-alpine3.18`, `8.3.0RC6-alpine3.18`, `8.3-rc-alpine3.18`, `8.3.0RC6-cli-alpine`, `8.3-rc-cli-alpine`, `8.3.0RC6-alpine`, `8.3-rc-alpine`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/alpine3.18/cli/Dockerfile) -- [`8.3.0RC6-fpm-alpine3.18`, `8.3-rc-fpm-alpine3.18`, `8.3.0RC6-fpm-alpine`, `8.3-rc-fpm-alpine`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/alpine3.18/fpm/Dockerfile) -- [`8.3.0RC6-zts-alpine3.18`, `8.3-rc-zts-alpine3.18`, `8.3.0RC6-zts-alpine`, `8.3-rc-zts-alpine`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/alpine3.18/zts/Dockerfile) -- [`8.3.0RC6-cli-alpine3.17`, `8.3-rc-cli-alpine3.17`, `8.3.0RC6-alpine3.17`, `8.3-rc-alpine3.17`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/alpine3.17/cli/Dockerfile) -- [`8.3.0RC6-fpm-alpine3.17`, `8.3-rc-fpm-alpine3.17`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/alpine3.17/fpm/Dockerfile) -- [`8.3.0RC6-zts-alpine3.17`, `8.3-rc-zts-alpine3.17`](https://github.com/docker-library/php/blob/bde3d5c08a72f61ed5af7592b1910faed1e4a3f2/8.3-rc/alpine3.17/zts/Dockerfile) -- [`8.2.13RC1-cli-bookworm`, `8.2-rc-cli-bookworm`, `8.2.13RC1-bookworm`, `8.2-rc-bookworm`, `8.2.13RC1-cli`, `8.2-rc-cli`, `8.2.13RC1`, `8.2-rc`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/bookworm/cli/Dockerfile) -- [`8.2.13RC1-apache-bookworm`, `8.2-rc-apache-bookworm`, `8.2.13RC1-apache`, `8.2-rc-apache`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/bookworm/apache/Dockerfile) -- [`8.2.13RC1-fpm-bookworm`, `8.2-rc-fpm-bookworm`, `8.2.13RC1-fpm`, `8.2-rc-fpm`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/bookworm/fpm/Dockerfile) -- [`8.2.13RC1-zts-bookworm`, `8.2-rc-zts-bookworm`, `8.2.13RC1-zts`, `8.2-rc-zts`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/bookworm/zts/Dockerfile) -- [`8.2.13RC1-cli-bullseye`, `8.2-rc-cli-bullseye`, `8.2.13RC1-bullseye`, `8.2-rc-bullseye`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/bullseye/cli/Dockerfile) -- [`8.2.13RC1-apache-bullseye`, `8.2-rc-apache-bullseye`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/bullseye/apache/Dockerfile) -- [`8.2.13RC1-fpm-bullseye`, `8.2-rc-fpm-bullseye`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/bullseye/fpm/Dockerfile) -- [`8.2.13RC1-zts-bullseye`, `8.2-rc-zts-bullseye`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/bullseye/zts/Dockerfile) -- [`8.2.13RC1-cli-alpine3.18`, `8.2-rc-cli-alpine3.18`, `8.2.13RC1-alpine3.18`, `8.2-rc-alpine3.18`, `8.2.13RC1-cli-alpine`, `8.2-rc-cli-alpine`, `8.2.13RC1-alpine`, `8.2-rc-alpine`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/alpine3.18/cli/Dockerfile) -- [`8.2.13RC1-fpm-alpine3.18`, `8.2-rc-fpm-alpine3.18`, `8.2.13RC1-fpm-alpine`, `8.2-rc-fpm-alpine`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/alpine3.18/fpm/Dockerfile) -- [`8.2.13RC1-zts-alpine3.18`, `8.2-rc-zts-alpine3.18`, `8.2.13RC1-zts-alpine`, `8.2-rc-zts-alpine`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/alpine3.18/zts/Dockerfile) -- [`8.2.13RC1-cli-alpine3.17`, `8.2-rc-cli-alpine3.17`, `8.2.13RC1-alpine3.17`, `8.2-rc-alpine3.17`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/alpine3.17/cli/Dockerfile) -- [`8.2.13RC1-fpm-alpine3.17`, `8.2-rc-fpm-alpine3.17`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/alpine3.17/fpm/Dockerfile) -- [`8.2.13RC1-zts-alpine3.17`, `8.2-rc-zts-alpine3.17`](https://github.com/docker-library/php/blob/a6e12d03c2e41ae40a156168ce3a83c8f4adf1fe/8.2-rc/alpine3.17/zts/Dockerfile) -- [`8.2.12-cli-bookworm`, `8.2-cli-bookworm`, `8-cli-bookworm`, `cli-bookworm`, `8.2.12-bookworm`, `8.2-bookworm`, `8-bookworm`, `bookworm`, `8.2.12-cli`, `8.2-cli`, `8-cli`, `cli`, `8.2.12`, `8.2`, `8`, `latest`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/bookworm/cli/Dockerfile) -- [`8.2.12-apache-bookworm`, `8.2-apache-bookworm`, `8-apache-bookworm`, `apache-bookworm`, `8.2.12-apache`, `8.2-apache`, `8-apache`, `apache`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/bookworm/apache/Dockerfile) -- [`8.2.12-fpm-bookworm`, `8.2-fpm-bookworm`, `8-fpm-bookworm`, `fpm-bookworm`, `8.2.12-fpm`, `8.2-fpm`, `8-fpm`, `fpm`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/bookworm/fpm/Dockerfile) -- [`8.2.12-zts-bookworm`, `8.2-zts-bookworm`, `8-zts-bookworm`, `zts-bookworm`, `8.2.12-zts`, `8.2-zts`, `8-zts`, `zts`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/bookworm/zts/Dockerfile) -- [`8.2.12-cli-bullseye`, `8.2-cli-bullseye`, `8-cli-bullseye`, `cli-bullseye`, `8.2.12-bullseye`, `8.2-bullseye`, `8-bullseye`, `bullseye`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/bullseye/cli/Dockerfile) -- [`8.2.12-apache-bullseye`, `8.2-apache-bullseye`, `8-apache-bullseye`, `apache-bullseye`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/bullseye/apache/Dockerfile) -- [`8.2.12-fpm-bullseye`, `8.2-fpm-bullseye`, `8-fpm-bullseye`, `fpm-bullseye`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/bullseye/fpm/Dockerfile) -- [`8.2.12-zts-bullseye`, `8.2-zts-bullseye`, `8-zts-bullseye`, `zts-bullseye`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/bullseye/zts/Dockerfile) -- [`8.2.12-cli-alpine3.18`, `8.2-cli-alpine3.18`, `8-cli-alpine3.18`, `cli-alpine3.18`, `8.2.12-alpine3.18`, `8.2-alpine3.18`, `8-alpine3.18`, `alpine3.18`, `8.2.12-cli-alpine`, `8.2-cli-alpine`, `8-cli-alpine`, `cli-alpine`, `8.2.12-alpine`, `8.2-alpine`, `8-alpine`, `alpine`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/alpine3.18/cli/Dockerfile) -- [`8.2.12-fpm-alpine3.18`, `8.2-fpm-alpine3.18`, `8-fpm-alpine3.18`, `fpm-alpine3.18`, `8.2.12-fpm-alpine`, `8.2-fpm-alpine`, `8-fpm-alpine`, `fpm-alpine`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/alpine3.18/fpm/Dockerfile) -- [`8.2.12-zts-alpine3.18`, `8.2-zts-alpine3.18`, `8-zts-alpine3.18`, `zts-alpine3.18`, `8.2.12-zts-alpine`, `8.2-zts-alpine`, `8-zts-alpine`, `zts-alpine`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/alpine3.18/zts/Dockerfile) -- [`8.2.12-cli-alpine3.17`, `8.2-cli-alpine3.17`, `8-cli-alpine3.17`, `cli-alpine3.17`, `8.2.12-alpine3.17`, `8.2-alpine3.17`, `8-alpine3.17`, `alpine3.17`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/alpine3.17/cli/Dockerfile) -- [`8.2.12-fpm-alpine3.17`, `8.2-fpm-alpine3.17`, `8-fpm-alpine3.17`, `fpm-alpine3.17`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/alpine3.17/fpm/Dockerfile) -- [`8.2.12-zts-alpine3.17`, `8.2-zts-alpine3.17`, `8-zts-alpine3.17`, `zts-alpine3.17`](https://github.com/docker-library/php/blob/9efa150e7e28425da012816c607de298e22a946d/8.2/alpine3.17/zts/Dockerfile) -- [`8.1.26RC1-cli-bookworm`, `8.1-rc-cli-bookworm`, `8.1.26RC1-bookworm`, `8.1-rc-bookworm`, `8.1.26RC1-cli`, `8.1-rc-cli`, `8.1.26RC1`, `8.1-rc`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/bookworm/cli/Dockerfile) -- [`8.1.26RC1-apache-bookworm`, `8.1-rc-apache-bookworm`, `8.1.26RC1-apache`, `8.1-rc-apache`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/bookworm/apache/Dockerfile) -- [`8.1.26RC1-fpm-bookworm`, `8.1-rc-fpm-bookworm`, `8.1.26RC1-fpm`, `8.1-rc-fpm`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/bookworm/fpm/Dockerfile) -- [`8.1.26RC1-zts-bookworm`, `8.1-rc-zts-bookworm`, `8.1.26RC1-zts`, `8.1-rc-zts`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/bookworm/zts/Dockerfile) -- [`8.1.26RC1-cli-bullseye`, `8.1-rc-cli-bullseye`, `8.1.26RC1-bullseye`, `8.1-rc-bullseye`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/bullseye/cli/Dockerfile) -- [`8.1.26RC1-apache-bullseye`, `8.1-rc-apache-bullseye`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/bullseye/apache/Dockerfile) -- [`8.1.26RC1-fpm-bullseye`, `8.1-rc-fpm-bullseye`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/bullseye/fpm/Dockerfile) -- [`8.1.26RC1-zts-bullseye`, `8.1-rc-zts-bullseye`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/bullseye/zts/Dockerfile) -- [`8.1.26RC1-cli-alpine3.18`, `8.1-rc-cli-alpine3.18`, `8.1.26RC1-alpine3.18`, `8.1-rc-alpine3.18`, `8.1.26RC1-cli-alpine`, `8.1-rc-cli-alpine`, `8.1.26RC1-alpine`, `8.1-rc-alpine`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/alpine3.18/cli/Dockerfile) -- [`8.1.26RC1-fpm-alpine3.18`, `8.1-rc-fpm-alpine3.18`, `8.1.26RC1-fpm-alpine`, `8.1-rc-fpm-alpine`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/alpine3.18/fpm/Dockerfile) -- [`8.1.26RC1-zts-alpine3.18`, `8.1-rc-zts-alpine3.18`, `8.1.26RC1-zts-alpine`, `8.1-rc-zts-alpine`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/alpine3.18/zts/Dockerfile) -- [`8.1.26RC1-cli-alpine3.17`, `8.1-rc-cli-alpine3.17`, `8.1.26RC1-alpine3.17`, `8.1-rc-alpine3.17`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/alpine3.17/cli/Dockerfile) -- [`8.1.26RC1-fpm-alpine3.17`, `8.1-rc-fpm-alpine3.17`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/alpine3.17/fpm/Dockerfile) -- [`8.1.26RC1-zts-alpine3.17`, `8.1-rc-zts-alpine3.17`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/alpine3.17/zts/Dockerfile) -- [`8.1.26RC1-cli-alpine3.16`, `8.1-rc-cli-alpine3.16`, `8.1.26RC1-alpine3.16`, `8.1-rc-alpine3.16`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/alpine3.16/cli/Dockerfile) -- [`8.1.26RC1-fpm-alpine3.16`, `8.1-rc-fpm-alpine3.16`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/alpine3.16/fpm/Dockerfile) -- [`8.1.26RC1-zts-alpine3.16`, `8.1-rc-zts-alpine3.16`](https://github.com/docker-library/php/blob/6e732efed8b7a246a7da26851ecf6feb5ceb8c79/8.1-rc/alpine3.16/zts/Dockerfile) -- [`8.1.25-cli-bookworm`, `8.1-cli-bookworm`, `8.1.25-bookworm`, `8.1-bookworm`, `8.1.25-cli`, `8.1-cli`, `8.1.25`, `8.1`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/bookworm/cli/Dockerfile) -- [`8.1.25-apache-bookworm`, `8.1-apache-bookworm`, `8.1.25-apache`, `8.1-apache`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/bookworm/apache/Dockerfile) -- [`8.1.25-fpm-bookworm`, `8.1-fpm-bookworm`, `8.1.25-fpm`, `8.1-fpm`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/bookworm/fpm/Dockerfile) -- [`8.1.25-zts-bookworm`, `8.1-zts-bookworm`, `8.1.25-zts`, `8.1-zts`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/bookworm/zts/Dockerfile) -- [`8.1.25-cli-bullseye`, `8.1-cli-bullseye`, `8.1.25-bullseye`, `8.1-bullseye`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/bullseye/cli/Dockerfile) -- [`8.1.25-apache-bullseye`, `8.1-apache-bullseye`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/bullseye/apache/Dockerfile) -- [`8.1.25-fpm-bullseye`, `8.1-fpm-bullseye`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/bullseye/fpm/Dockerfile) -- [`8.1.25-zts-bullseye`, `8.1-zts-bullseye`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/bullseye/zts/Dockerfile) -- [`8.1.25-cli-alpine3.18`, `8.1-cli-alpine3.18`, `8.1.25-alpine3.18`, `8.1-alpine3.18`, `8.1.25-cli-alpine`, `8.1-cli-alpine`, `8.1.25-alpine`, `8.1-alpine`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/alpine3.18/cli/Dockerfile) -- [`8.1.25-fpm-alpine3.18`, `8.1-fpm-alpine3.18`, `8.1.25-fpm-alpine`, `8.1-fpm-alpine`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/alpine3.18/fpm/Dockerfile) -- [`8.1.25-zts-alpine3.18`, `8.1-zts-alpine3.18`, `8.1.25-zts-alpine`, `8.1-zts-alpine`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/alpine3.18/zts/Dockerfile) -- [`8.1.25-cli-alpine3.17`, `8.1-cli-alpine3.17`, `8.1.25-alpine3.17`, `8.1-alpine3.17`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/alpine3.17/cli/Dockerfile) -- [`8.1.25-fpm-alpine3.17`, `8.1-fpm-alpine3.17`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/alpine3.17/fpm/Dockerfile) -- [`8.1.25-zts-alpine3.17`, `8.1-zts-alpine3.17`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/alpine3.17/zts/Dockerfile) -- [`8.1.25-cli-alpine3.16`, `8.1-cli-alpine3.16`, `8.1.25-alpine3.16`, `8.1-alpine3.16`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/alpine3.16/cli/Dockerfile) -- [`8.1.25-fpm-alpine3.16`, `8.1-fpm-alpine3.16`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/alpine3.16/fpm/Dockerfile) -- [`8.1.25-zts-alpine3.16`, `8.1-zts-alpine3.16`](https://github.com/docker-library/php/blob/6e5d9a5b449663085a96a5bc4d1973bd8b86ada9/8.1/alpine3.16/zts/Dockerfile) -- [`8.0.30-cli-bullseye`, `8.0-cli-bullseye`, `8.0.30-bullseye`, `8.0-bullseye`, `8.0.30-cli`, `8.0-cli`, `8.0.30`, `8.0`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/bullseye/cli/Dockerfile) -- [`8.0.30-apache-bullseye`, `8.0-apache-bullseye`, `8.0.30-apache`, `8.0-apache`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/bullseye/apache/Dockerfile) -- [`8.0.30-fpm-bullseye`, `8.0-fpm-bullseye`, `8.0.30-fpm`, `8.0-fpm`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/bullseye/fpm/Dockerfile) -- [`8.0.30-zts-bullseye`, `8.0-zts-bullseye`, `8.0.30-zts`, `8.0-zts`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/bullseye/zts/Dockerfile) -- [`8.0.30-cli-buster`, `8.0-cli-buster`, `8.0.30-buster`, `8.0-buster`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/buster/cli/Dockerfile) -- [`8.0.30-apache-buster`, `8.0-apache-buster`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/buster/apache/Dockerfile) -- [`8.0.30-fpm-buster`, `8.0-fpm-buster`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/buster/fpm/Dockerfile) -- [`8.0.30-zts-buster`, `8.0-zts-buster`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/buster/zts/Dockerfile) -- [`8.0.30-cli-alpine3.16`, `8.0-cli-alpine3.16`, `8.0.30-alpine3.16`, `8.0-alpine3.16`, `8.0.30-cli-alpine`, `8.0-cli-alpine`, `8.0.30-alpine`, `8.0-alpine`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/alpine3.16/cli/Dockerfile) -- [`8.0.30-fpm-alpine3.16`, `8.0-fpm-alpine3.16`, `8.0.30-fpm-alpine`, `8.0-fpm-alpine`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/alpine3.16/fpm/Dockerfile) -- [`8.0.30-zts-alpine3.16`, `8.0-zts-alpine3.16`, `8.0.30-zts-alpine`, `8.0-zts-alpine`](https://github.com/docker-library/php/blob/41c9ad0b43a50bbf46564f27779a01105df49b9a/8.0/alpine3.16/zts/Dockerfile) +- [`8.4.8-cli-bookworm`, `8.4-cli-bookworm`, `8-cli-bookworm`, `cli-bookworm`, `8.4.8-bookworm`, `8.4-bookworm`, `8-bookworm`, `bookworm`, `8.4.8-cli`, `8.4-cli`, `8-cli`, `cli`, `8.4.8`, `8.4`, `8`, `latest`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/bookworm/cli/Dockerfile) + +- [`8.4.8-apache-bookworm`, `8.4-apache-bookworm`, `8-apache-bookworm`, `apache-bookworm`, `8.4.8-apache`, `8.4-apache`, `8-apache`, `apache`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/bookworm/apache/Dockerfile) + +- [`8.4.8-fpm-bookworm`, `8.4-fpm-bookworm`, `8-fpm-bookworm`, `fpm-bookworm`, `8.4.8-fpm`, `8.4-fpm`, `8-fpm`, `fpm`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/bookworm/fpm/Dockerfile) + +- [`8.4.8-zts-bookworm`, `8.4-zts-bookworm`, `8-zts-bookworm`, `zts-bookworm`, `8.4.8-zts`, `8.4-zts`, `8-zts`, `zts`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/bookworm/zts/Dockerfile) + +- [`8.4.8-cli-bullseye`, `8.4-cli-bullseye`, `8-cli-bullseye`, `cli-bullseye`, `8.4.8-bullseye`, `8.4-bullseye`, `8-bullseye`, `bullseye`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/bullseye/cli/Dockerfile) + +- [`8.4.8-apache-bullseye`, `8.4-apache-bullseye`, `8-apache-bullseye`, `apache-bullseye`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/bullseye/apache/Dockerfile) + +- [`8.4.8-fpm-bullseye`, `8.4-fpm-bullseye`, `8-fpm-bullseye`, `fpm-bullseye`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/bullseye/fpm/Dockerfile) + +- [`8.4.8-zts-bullseye`, `8.4-zts-bullseye`, `8-zts-bullseye`, `zts-bullseye`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/bullseye/zts/Dockerfile) + +- [`8.4.8-cli-alpine3.22`, `8.4-cli-alpine3.22`, `8-cli-alpine3.22`, `cli-alpine3.22`, `8.4.8-alpine3.22`, `8.4-alpine3.22`, `8-alpine3.22`, `alpine3.22`, `8.4.8-cli-alpine`, `8.4-cli-alpine`, `8-cli-alpine`, `cli-alpine`, `8.4.8-alpine`, `8.4-alpine`, `8-alpine`, `alpine`](https://github.com/docker-library/php/blob/904a84a176cea22942566d52335794314c3b2aed/8.4/alpine3.22/cli/Dockerfile) + +- [`8.4.8-fpm-alpine3.22`, `8.4-fpm-alpine3.22`, `8-fpm-alpine3.22`, `fpm-alpine3.22`, `8.4.8-fpm-alpine`, `8.4-fpm-alpine`, `8-fpm-alpine`, `fpm-alpine`](https://github.com/docker-library/php/blob/904a84a176cea22942566d52335794314c3b2aed/8.4/alpine3.22/fpm/Dockerfile) + +- [`8.4.8-zts-alpine3.22`, `8.4-zts-alpine3.22`, `8-zts-alpine3.22`, `zts-alpine3.22`, `8.4.8-zts-alpine`, `8.4-zts-alpine`, `8-zts-alpine`, `zts-alpine`](https://github.com/docker-library/php/blob/9c90483c2bb64195cc9c55cb06a4830955015830/8.4/alpine3.22/zts/Dockerfile) + +- [`8.4.8-cli-alpine3.21`, `8.4-cli-alpine3.21`, `8-cli-alpine3.21`, `cli-alpine3.21`, `8.4.8-alpine3.21`, `8.4-alpine3.21`, `8-alpine3.21`, `alpine3.21`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/alpine3.21/cli/Dockerfile) + +- [`8.4.8-fpm-alpine3.21`, `8.4-fpm-alpine3.21`, `8-fpm-alpine3.21`, `fpm-alpine3.21`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/alpine3.21/fpm/Dockerfile) + +- [`8.4.8-zts-alpine3.21`, `8.4-zts-alpine3.21`, `8-zts-alpine3.21`, `zts-alpine3.21`](https://github.com/docker-library/php/blob/1b31e2e0cb2a9ad2cf0c198422be888bec840a59/8.4/alpine3.21/zts/Dockerfile) + +- [`8.3.22-cli-bookworm`, `8.3-cli-bookworm`, `8.3.22-bookworm`, `8.3-bookworm`, `8.3.22-cli`, `8.3-cli`, `8.3.22`, `8.3`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/bookworm/cli/Dockerfile) + +- [`8.3.22-apache-bookworm`, `8.3-apache-bookworm`, `8.3.22-apache`, `8.3-apache`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/bookworm/apache/Dockerfile) + +- [`8.3.22-fpm-bookworm`, `8.3-fpm-bookworm`, `8.3.22-fpm`, `8.3-fpm`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/bookworm/fpm/Dockerfile) + +- [`8.3.22-zts-bookworm`, `8.3-zts-bookworm`, `8.3.22-zts`, `8.3-zts`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/bookworm/zts/Dockerfile) + +- [`8.3.22-cli-bullseye`, `8.3-cli-bullseye`, `8.3.22-bullseye`, `8.3-bullseye`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/bullseye/cli/Dockerfile) + +- [`8.3.22-apache-bullseye`, `8.3-apache-bullseye`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/bullseye/apache/Dockerfile) + +- [`8.3.22-fpm-bullseye`, `8.3-fpm-bullseye`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/bullseye/fpm/Dockerfile) + +- [`8.3.22-zts-bullseye`, `8.3-zts-bullseye`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/bullseye/zts/Dockerfile) + +- [`8.3.22-cli-alpine3.22`, `8.3-cli-alpine3.22`, `8.3.22-alpine3.22`, `8.3-alpine3.22`, `8.3.22-cli-alpine`, `8.3-cli-alpine`, `8.3.22-alpine`, `8.3-alpine`](https://github.com/docker-library/php/blob/904a84a176cea22942566d52335794314c3b2aed/8.3/alpine3.22/cli/Dockerfile) + +- [`8.3.22-fpm-alpine3.22`, `8.3-fpm-alpine3.22`, `8.3.22-fpm-alpine`, `8.3-fpm-alpine`](https://github.com/docker-library/php/blob/904a84a176cea22942566d52335794314c3b2aed/8.3/alpine3.22/fpm/Dockerfile) + +- [`8.3.22-zts-alpine3.22`, `8.3-zts-alpine3.22`, `8.3.22-zts-alpine`, `8.3-zts-alpine`](https://github.com/docker-library/php/blob/9c90483c2bb64195cc9c55cb06a4830955015830/8.3/alpine3.22/zts/Dockerfile) + +- [`8.3.22-cli-alpine3.21`, `8.3-cli-alpine3.21`, `8.3.22-alpine3.21`, `8.3-alpine3.21`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/alpine3.21/cli/Dockerfile) + +- [`8.3.22-fpm-alpine3.21`, `8.3-fpm-alpine3.21`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/alpine3.21/fpm/Dockerfile) + +- [`8.3.22-zts-alpine3.21`, `8.3-zts-alpine3.21`](https://github.com/docker-library/php/blob/e055cc2b6c4df1b306c59eddb6612bcc4e816c5c/8.3/alpine3.21/zts/Dockerfile) + +- [`8.2.28-cli-bookworm`, `8.2-cli-bookworm`, `8.2.28-bookworm`, `8.2-bookworm`, `8.2.28-cli`, `8.2-cli`, `8.2.28`, `8.2`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/bookworm/cli/Dockerfile) + +- [`8.2.28-apache-bookworm`, `8.2-apache-bookworm`, `8.2.28-apache`, `8.2-apache`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/bookworm/apache/Dockerfile) + +- [`8.2.28-fpm-bookworm`, `8.2-fpm-bookworm`, `8.2.28-fpm`, `8.2-fpm`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/bookworm/fpm/Dockerfile) + +- [`8.2.28-zts-bookworm`, `8.2-zts-bookworm`, `8.2.28-zts`, `8.2-zts`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/bookworm/zts/Dockerfile) + +- [`8.2.28-cli-bullseye`, `8.2-cli-bullseye`, `8.2.28-bullseye`, `8.2-bullseye`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/bullseye/cli/Dockerfile) + +- [`8.2.28-apache-bullseye`, `8.2-apache-bullseye`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/bullseye/apache/Dockerfile) + +- [`8.2.28-fpm-bullseye`, `8.2-fpm-bullseye`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/bullseye/fpm/Dockerfile) + +- [`8.2.28-zts-bullseye`, `8.2-zts-bullseye`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/bullseye/zts/Dockerfile) + +- [`8.2.28-cli-alpine3.22`, `8.2-cli-alpine3.22`, `8.2.28-alpine3.22`, `8.2-alpine3.22`, `8.2.28-cli-alpine`, `8.2-cli-alpine`, `8.2.28-alpine`, `8.2-alpine`](https://github.com/docker-library/php/blob/904a84a176cea22942566d52335794314c3b2aed/8.2/alpine3.22/cli/Dockerfile) + +- [`8.2.28-fpm-alpine3.22`, `8.2-fpm-alpine3.22`, `8.2.28-fpm-alpine`, `8.2-fpm-alpine`](https://github.com/docker-library/php/blob/904a84a176cea22942566d52335794314c3b2aed/8.2/alpine3.22/fpm/Dockerfile) + +- [`8.2.28-zts-alpine3.22`, `8.2-zts-alpine3.22`, `8.2.28-zts-alpine`, `8.2-zts-alpine`](https://github.com/docker-library/php/blob/9c90483c2bb64195cc9c55cb06a4830955015830/8.2/alpine3.22/zts/Dockerfile) + +- [`8.2.28-cli-alpine3.21`, `8.2-cli-alpine3.21`, `8.2.28-alpine3.21`, `8.2-alpine3.21`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/alpine3.21/cli/Dockerfile) + +- [`8.2.28-fpm-alpine3.21`, `8.2-fpm-alpine3.21`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/alpine3.21/fpm/Dockerfile) + +- [`8.2.28-zts-alpine3.21`, `8.2-zts-alpine3.21`](https://github.com/docker-library/php/blob/1d34ec5ee5ce9fa76a776c039a9f98533cc096f8/8.2/alpine3.21/zts/Dockerfile) + +- [`8.1.32-cli-bookworm`, `8.1-cli-bookworm`, `8.1.32-bookworm`, `8.1-bookworm`, `8.1.32-cli`, `8.1-cli`, `8.1.32`, `8.1`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/bookworm/cli/Dockerfile) + +- [`8.1.32-apache-bookworm`, `8.1-apache-bookworm`, `8.1.32-apache`, `8.1-apache`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/bookworm/apache/Dockerfile) + +- [`8.1.32-fpm-bookworm`, `8.1-fpm-bookworm`, `8.1.32-fpm`, `8.1-fpm`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/bookworm/fpm/Dockerfile) + +- [`8.1.32-zts-bookworm`, `8.1-zts-bookworm`, `8.1.32-zts`, `8.1-zts`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/bookworm/zts/Dockerfile) + +- [`8.1.32-cli-bullseye`, `8.1-cli-bullseye`, `8.1.32-bullseye`, `8.1-bullseye`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/bullseye/cli/Dockerfile) + +- [`8.1.32-apache-bullseye`, `8.1-apache-bullseye`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/bullseye/apache/Dockerfile) + +- [`8.1.32-fpm-bullseye`, `8.1-fpm-bullseye`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/bullseye/fpm/Dockerfile) + +- [`8.1.32-zts-bullseye`, `8.1-zts-bullseye`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/bullseye/zts/Dockerfile) + +- [`8.1.32-cli-alpine3.22`, `8.1-cli-alpine3.22`, `8.1.32-alpine3.22`, `8.1-alpine3.22`](https://github.com/docker-library/php/blob/904a84a176cea22942566d52335794314c3b2aed/8.1/alpine3.22/cli/Dockerfile) + +- [`8.1.32-fpm-alpine3.22`, `8.1-fpm-alpine3.22`](https://github.com/docker-library/php/blob/904a84a176cea22942566d52335794314c3b2aed/8.1/alpine3.22/fpm/Dockerfile) + +- [`8.1.32-zts-alpine3.22`, `8.1-zts-alpine3.22`](https://github.com/docker-library/php/blob/9c90483c2bb64195cc9c55cb06a4830955015830/8.1/alpine3.22/zts/Dockerfile) + +- [`8.1.32-cli-alpine3.21`, `8.1-cli-alpine3.21`, `8.1.32-alpine3.21`, `8.1-alpine3.21`, `8.1.32-cli-alpine`, `8.1-cli-alpine`, `8.1.32-alpine`, `8.1-alpine`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/alpine3.21/cli/Dockerfile) + +- [`8.1.32-fpm-alpine3.21`, `8.1-fpm-alpine3.21`, `8.1.32-fpm-alpine`, `8.1-fpm-alpine`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/alpine3.21/fpm/Dockerfile) + +- [`8.1.32-zts-alpine3.21`, `8.1-zts-alpine3.21`, `8.1.32-zts-alpine`, `8.1-zts-alpine`](https://github.com/docker-library/php/blob/aada98fe2ddd5df2b73e25ecf552c954b299f928/8.1/alpine3.21/zts/Dockerfile) # Quick reference (cont.) @@ -118,7 +142,7 @@ WARNING: [https://github.com/docker-library/php/issues](https://github.com/docker-library/php/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/php/), [`arm32v5`](https://hub.docker.com/r/arm32v5/php/), [`arm32v6`](https://hub.docker.com/r/arm32v6/php/), [`arm32v7`](https://hub.docker.com/r/arm32v7/php/), [`arm64v8`](https://hub.docker.com/r/arm64v8/php/), [`i386`](https://hub.docker.com/r/i386/php/), [`mips64le`](https://hub.docker.com/r/mips64le/php/), [`ppc64le`](https://hub.docker.com/r/ppc64le/php/), [`s390x`](https://hub.docker.com/r/s390x/php/) + [`amd64`](https://hub.docker.com/r/amd64/php/), [`arm32v5`](https://hub.docker.com/r/arm32v5/php/), [`arm32v6`](https://hub.docker.com/r/arm32v6/php/), [`arm32v7`](https://hub.docker.com/r/arm32v7/php/), [`arm64v8`](https://hub.docker.com/r/arm64v8/php/), [`i386`](https://hub.docker.com/r/i386/php/), [`mips64le`](https://hub.docker.com/r/mips64le/php/), [`ppc64le`](https://hub.docker.com/r/ppc64le/php/), [`riscv64`](https://hub.docker.com/r/riscv64/php/), [`s390x`](https://hub.docker.com/r/s390x/php/) - **Published image artifact details**: [repo-info repo's `repos/php/` directory](https://github.com/docker-library/repo-info/blob/master/repos/php) ([history](https://github.com/docker-library/repo-info/commits/master/repos/php)) @@ -306,7 +330,7 @@ In many production environments, it is also recommended to (build and) enable th The `php` images come in many flavors, each designed for a specific use case. -Some of these tags may have names like bookworm, bullseye, or buster 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. +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. ## `php:-cli` @@ -359,15 +383,15 @@ A similar technique could be employed for other Apache configuration options. ## `php:-fpm` -This variant contains PHP-FPM, which is a FastCGI implementation for PHP. See [the PHP-FPM website](https://php-fpm.org/) for more information about PHP-FPM. +This variant contains [PHP's FastCGI Process Manager (FPM)](https://www.php.net/fpm), which is the recommended FastCGI implementation for PHP. In order to use this image variant, some kind of reverse proxy (such as NGINX, Apache, or other tool which speaks the FastCGI protocol) will be required. Some potentially helpful resources: -- [PHP-FPM.org](https://php-fpm.org/) -- [simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) -- [very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) +- [FPM's Official Configuration Reference](https://www.php.net/manual/en/install.fpm.configuration.php) +- [Simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) +- [Very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) - [Stack Overflow discussion](https://stackoverflow.com/q/29905953/433558) - [Apache httpd Wiki example](https://wiki.apache.org/httpd/PHPFPMWordpress) diff --git a/php/metadata.json b/php/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/php/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/php/variant-fpm.md b/php/variant-fpm.md index 06ba66065500..5ea228701ea5 100644 --- a/php/variant-fpm.md +++ b/php/variant-fpm.md @@ -1,14 +1,14 @@ ## `%%IMAGE%%:-fpm` -This variant contains PHP-FPM, which is a FastCGI implementation for PHP. See [the PHP-FPM website](https://php-fpm.org/) for more information about PHP-FPM. +This variant contains [PHP's FastCGI Process Manager (FPM)](https://www.php.net/fpm), which is the recommended FastCGI implementation for PHP. In order to use this image variant, some kind of reverse proxy (such as NGINX, Apache, or other tool which speaks the FastCGI protocol) will be required. Some potentially helpful resources: -- [PHP-FPM.org](https://php-fpm.org/) -- [simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) -- [very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) +- [FPM's Official Configuration Reference](https://www.php.net/manual/en/install.fpm.configuration.php) +- [Simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) +- [Very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) - [Stack Overflow discussion](https://stackoverflow.com/q/29905953/433558) - [Apache httpd Wiki example](https://wiki.apache.org/httpd/PHPFPMWordpress) diff --git a/phpmyadmin/README.md b/phpmyadmin/README.md index 40d86291cbbb..d3bd45e74094 100644 --- a/phpmyadmin/README.md +++ b/phpmyadmin/README.md @@ -24,9 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.2.1-apache`, `5.2-apache`, `5-apache`, `apache`, `5.2.1`, `5.2`, `5`, `latest`](https://github.com/phpmyadmin/docker/blob/da4b8f273a0a81078185076683ed92a382814ef3/apache/Dockerfile) -- [`5.2.1-fpm`, `5.2-fpm`, `5-fpm`, `fpm`](https://github.com/phpmyadmin/docker/blob/da4b8f273a0a81078185076683ed92a382814ef3/fpm/Dockerfile) -- [`5.2.1-fpm-alpine`, `5.2-fpm-alpine`, `5-fpm-alpine`, `fpm-alpine`](https://github.com/phpmyadmin/docker/blob/8674356a6d0f67eb89d0200647832fc3853781fd/fpm-alpine/Dockerfile) +- [`5.2.2-apache`, `5.2-apache`, `5-apache`, `apache`, `5.2.2`, `5.2`, `5`, `latest`](https://github.com/phpmyadmin/docker/blob/188a0e35423fb615db47e6a0a8209fe7288eb2ed/apache/Dockerfile) + +- [`5.2.2-fpm`, `5.2-fpm`, `5-fpm`, `fpm`](https://github.com/phpmyadmin/docker/blob/188a0e35423fb615db47e6a0a8209fe7288eb2ed/fpm/Dockerfile) + +- [`5.2.2-fpm-alpine`, `5.2-fpm-alpine`, `5-fpm-alpine`, `fpm-alpine`](https://github.com/phpmyadmin/docker/blob/216be795f7a1a60c2c27ff5d00b5c8476771e1d1/fpm-alpine/Dockerfile) # Quick reference (cont.) @@ -34,7 +36,7 @@ WARNING: [https://github.com/phpmyadmin/docker/issues](https://github.com/phpmyadmin/docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/phpmyadmin/), [`arm32v5`](https://hub.docker.com/r/arm32v5/phpmyadmin/), [`arm32v6`](https://hub.docker.com/r/arm32v6/phpmyadmin/), [`arm32v7`](https://hub.docker.com/r/arm32v7/phpmyadmin/), [`arm64v8`](https://hub.docker.com/r/arm64v8/phpmyadmin/), [`i386`](https://hub.docker.com/r/i386/phpmyadmin/), [`mips64le`](https://hub.docker.com/r/mips64le/phpmyadmin/), [`ppc64le`](https://hub.docker.com/r/ppc64le/phpmyadmin/), [`s390x`](https://hub.docker.com/r/s390x/phpmyadmin/) + [`amd64`](https://hub.docker.com/r/amd64/phpmyadmin/), [`arm32v5`](https://hub.docker.com/r/arm32v5/phpmyadmin/), [`arm32v6`](https://hub.docker.com/r/arm32v6/phpmyadmin/), [`arm32v7`](https://hub.docker.com/r/arm32v7/phpmyadmin/), [`arm64v8`](https://hub.docker.com/r/arm64v8/phpmyadmin/), [`i386`](https://hub.docker.com/r/i386/phpmyadmin/), [`mips64le`](https://hub.docker.com/r/mips64le/phpmyadmin/), [`ppc64le`](https://hub.docker.com/r/ppc64le/phpmyadmin/), [`riscv64`](https://hub.docker.com/r/riscv64/phpmyadmin/), [`s390x`](https://hub.docker.com/r/s390x/phpmyadmin/) - **Published image artifact details**: [repo-info repo's `repos/phpmyadmin/` directory](https://github.com/docker-library/repo-info/blob/master/repos/phpmyadmin) ([history](https://github.com/docker-library/repo-info/commits/master/repos/phpmyadmin)) @@ -57,7 +59,7 @@ Run phpMyAdmin with Alpine, Apache and PHP FPM. # How to use this image -All of the following examples will bring you phpMyAdmin on `http://localhost:8080` where you can enjoy your happy MySQL administration. +All of the following examples will bring you phpMyAdmin on `http://localhost:8080` where you can enjoy your happy MySQL and MariaDB administration. ## Credentials @@ -111,20 +113,18 @@ You can use arbitrary servers by adding the environment variable `PMA_ARBITRARY= docker run --name phpmyadmin -d -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin ``` -## Usage with docker-compose and arbitrary server +## Usage with `docker compose` and an arbitrary server This will run phpMyAdmin with the arbitrary server option - allowing you to specify any MySQL/MariaDB server on the login page. -... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `phpmyadmin`: +Example `compose.yaml` for `phpmyadmin`: ```yaml -version: '3.1' - services: db: - image: mariadb:10.6 + image: mariadb:10.11 restart: always environment: MYSQL_ROOT_PASSWORD: notSecureChangeMe @@ -138,8 +138,6 @@ services: - PMA_ARBITRARY=1 ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/6372937f8f1ff823d2aaa102762be5bb5cd87f40/phpmyadmin/stack.yml) - ## Adding Custom Configuration You can add your own custom config.inc.php settings (such as Configuration Storage setup) by creating a file named `config.user.inc.php` with the various user defined settings in it, and then linking it into the container using: @@ -169,10 +167,40 @@ See the following links for config file information: - https://docs.phpmyadmin.net/en/latest/config.html#config - https://docs.phpmyadmin.net/en/latest/setup.html +## Adding custom configuration in `/etc/phpmyadmin/conf.d` + +you can also consider storing your custom configuration files in the folder `/etc/phpmyadmin/conf.d`, which is very suitable for managing multiple phpMyAdmin configuration files for different hosts,Then you can create `server-1.php`, `server-2.php`, or any file name you want, and store them in the conf.d directory mounted on the host. + +On the `docker run` line like this: + +```sh +docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/conf.d:/etc/phpmyadmin/conf.d:ro phpmyadmin +``` + ## Usage behind a reverse proxy Set the variable `PMA_ABSOLUTE_URI` to the fully-qualified path (`https://pma.example.net/`) where the reverse proxy makes phpMyAdmin available. +## Sessions persistence + +In order to keep your sessions active between container updates you will need to mount the `/sessions` folder. + +```sh +-v /some/local/directory/sessions:/sessions:rw +``` + +## Connect to the database over SSL + +Set the variable `PMA_SSL` to `1` to enable SSL usage from phpMyAdmin to the MySQL server. The default value is `0`. The variable `PMA_SSLS` can be used as a comma seperated sequence of `0` and `1` where multiple hosts are mentioned. Values order must follow the `PMA_HOSTS` and will be computed accordingly. + +```sh +docker run --name phpmyadmin -d -e PMA_HOSTS=sslhost -e PMA_SSL=1 -p 8080:80 phpmyadmin +``` + +```sh +docker run --name phpmyadmin -d -e PMA_HOSTS='sslhost,nosslhost' -e PMA_SSLS='1,0' -p 8080:80 phpmyadmin +``` + ## Environment variables summary - `PMA_ARBITRARY` - when set to 1 connection to the arbitrary server will be allowed @@ -182,6 +210,19 @@ Set the variable `PMA_ABSOLUTE_URI` to the fully-qualified path (`https://pma.ex - `PMA_HOSTS` - define comma separated list of address/host names of the MySQL servers - `PMA_VERBOSES` - define comma separated list of verbose names of the MySQL servers - `PMA_PORTS` - define comma separated list of ports of the MySQL servers +- `PMA_SOCKET` - define socket file for the MySQL connection +- `PMA_SOCKETS` - define comma separated list of socket files for the MySQL connections +- `PMA_SSL_DIR` - define the path used for SSL files generated from environement variables, default value is `/etc/phpmyadmin/ssl` +- `PMA_SSL` - when set to 1, defines SSL usage for the MySQL connection +- `PMA_SSLS` - comma separated list of `0` and `1` defining SSL usage for the corresponding MySQL connections +- `PMA_SSL_VERIFY` - when set to 1, enables SSL certificate verification for the MySQL connection. +- `PMA_SSL_VERIFIES` - comma-separated list of `0` and `1` to enable or disable SSL certificate verification for multiple MySQL connections. +- `PMA_SSL_CA` - in the context of mutual TLS security, allows setting your CA certificate file as a string inside the default `config.inc.php`. +- `PMA_SSL_CAS` - in the context of mutual TLS security, allows setting multiple CA certificate files as a comma-separated list of strings inside the default `config.inc.php`. +- `PMA_SSL_CERT` - in the context of mutual TLS security, allows setting your certificate file as a string inside the default `config.inc.php`. +- `PMA_SSL_CERTS` - in the context of mutual TLS security, allows setting multiple certificate files as a comma-separated list of strings inside the default `config.inc.php`. +- `PMA_SSL_KEY` - in the context of mutual TLS security, allows setting your private key file as a string inside the default `config.inc.php`. +- `PMA_SSL_KEYS` - in the context of mutual TLS security, allows setting multiple private key files as a comma-separated list of strings inside the default `config.inc.php`. - `PMA_USER` and `PMA_PASSWORD` - define username and password to use only with the `config` authentication method - `PMA_ABSOLUTE_URI` - the full URL to phpMyAdmin. Sometimes needed when used in a reverse-proxy configuration. Don't set this unless needed. See [documentation](https://docs.phpmyadmin.net/en/latest/config.html#cfg_PmaAbsoluteUri). - `PMA_CONFIG_BASE64` - if set, this option will override the default `config.inc.php` with the base64 decoded contents of the variable @@ -198,6 +239,7 @@ Set the variable `PMA_ABSOLUTE_URI` to the fully-qualified path (`https://pma.ex - `MAX_EXECUTION_TIME` - if set, will override the maximum execution time in seconds (default 600) for phpMyAdmin ([$cfg['ExecTimeLimit']](https://docs.phpmyadmin.net/en/latest/config.html#cfg_ExecTimeLimit)) and PHP [max_execution_time](https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time) (format as `[0-9+]`) - `MEMORY_LIMIT` - if set, will override the memory limit (default 512M) for phpMyAdmin ([$cfg['MemoryLimit']](https://docs.phpmyadmin.net/en/latest/config.html#cfg_MemoryLimit)) and PHP [memory_limit](https://www.php.net/manual/en/ini.core.php#ini.memory-limit) (format as `[0-9+](K,M,G)` where K is for Kilobytes, M for Megabytes, G for Gigabytes and 1K = 1024 bytes) - `UPLOAD_LIMIT` - if set, this option will override the default value for apache and php-fpm (format as `[0-9+](K,M,G)` default value is 2048K, this will change `upload_max_filesize` and `post_max_size` values) +- `TZ` - if defined, this option will change the default PHP `date.timezone` from `UTC`. See [documentation](https://www.php.net/manual/en/timezones.php) for supported values. - `HIDE_PHP_VERSION` - if defined, this option will hide the PHP version (`expose_php = Off`). Set to any value (such as `HIDE_PHP_VERSION=true`). - `APACHE_PORT` - if defined, this option will change the default Apache port from `80` in case you want it to run on a different port like an unprivileged port. Set to any port value (such as `APACHE_PORT=8090`) @@ -207,6 +249,19 @@ For usage with Docker secrets, appending `_FILE` to the `PMA_PASSWORD` environme docker run --name phpmyadmin -d -e PMA_PASSWORD_FILE=/run/secrets/db_password.txt -p 8080:80 phpmyadmin ``` +#### Variables that can store the file contents using `_BASE64` + +- `PMA_SSL_CA` +- `PMA_SSL_CAS` +- `PMA_SSL_KEY` +- `PMA_SSL_KEYS` +- `PMA_SSL_CERT` +- `PMA_SSL_CERTS` + +Also includes: `PMA_CONFIG_BASE64` or `PMA_USER_CONFIG_BASE64`. + +For example, the variable would be named `PMA_SSL_CA_BASE64` and the value is the base64 encoded contents of the file. + #### Variables that can be read from a file using `_FILE` - `MYSQL_ROOT_PASSWORD` diff --git a/phpmyadmin/stack.yml b/phpmyadmin/compose.yaml similarity index 84% rename from phpmyadmin/stack.yml rename to phpmyadmin/compose.yaml index 4912da59794e..56a7674306bb 100644 --- a/phpmyadmin/stack.yml +++ b/phpmyadmin/compose.yaml @@ -1,8 +1,6 @@ -version: '3.1' - services: db: - image: mariadb:10.6 + image: mariadb:10.11 restart: always environment: MYSQL_ROOT_PASSWORD: notSecureChangeMe diff --git a/phpmyadmin/content.md b/phpmyadmin/content.md index 20f8baf6d0ea..3b7c4f0f8282 100644 --- a/phpmyadmin/content.md +++ b/phpmyadmin/content.md @@ -8,7 +8,7 @@ Run phpMyAdmin with Alpine, Apache and PHP FPM. # How to use this image -All of the following examples will bring you phpMyAdmin on `http://localhost:8080` where you can enjoy your happy MySQL administration. +All of the following examples will bring you phpMyAdmin on `http://localhost:8080` where you can enjoy your happy MySQL and MariaDB administration. ## Credentials @@ -62,11 +62,11 @@ You can use arbitrary servers by adding the environment variable `PMA_ARBITRARY= docker run --name phpmyadmin -d -e PMA_ARBITRARY=1 -p 8080:80 %%IMAGE%% ``` -## Usage with docker-compose and arbitrary server +## Usage with `docker compose` and an arbitrary server This will run phpMyAdmin with the arbitrary server option - allowing you to specify any MySQL/MariaDB server on the login page. -%%STACK%% +%%COMPOSE%% ## Adding Custom Configuration @@ -97,10 +97,40 @@ See the following links for config file information: - https://docs.phpmyadmin.net/en/latest/config.html#config - https://docs.phpmyadmin.net/en/latest/setup.html +## Adding custom configuration in `/etc/phpmyadmin/conf.d` + +you can also consider storing your custom configuration files in the folder `/etc/phpmyadmin/conf.d`, which is very suitable for managing multiple phpMyAdmin configuration files for different hosts,Then you can create `server-1.php`, `server-2.php`, or any file name you want, and store them in the conf.d directory mounted on the host. + +On the `docker run` line like this: + +```sh +docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/conf.d:/etc/phpmyadmin/conf.d:ro %%IMAGE%% +``` + ## Usage behind a reverse proxy Set the variable `PMA_ABSOLUTE_URI` to the fully-qualified path (`https://pma.example.net/`) where the reverse proxy makes phpMyAdmin available. +## Sessions persistence + +In order to keep your sessions active between container updates you will need to mount the `/sessions` folder. + +```sh +-v /some/local/directory/sessions:/sessions:rw +``` + +## Connect to the database over SSL + +Set the variable `PMA_SSL` to `1` to enable SSL usage from phpMyAdmin to the MySQL server. The default value is `0`. The variable `PMA_SSLS` can be used as a comma seperated sequence of `0` and `1` where multiple hosts are mentioned. Values order must follow the `PMA_HOSTS` and will be computed accordingly. + +```sh +docker run --name phpmyadmin -d -e PMA_HOSTS=sslhost -e PMA_SSL=1 -p 8080:80 %%IMAGE%% +``` + +```sh +docker run --name phpmyadmin -d -e PMA_HOSTS='sslhost,nosslhost' -e PMA_SSLS='1,0' -p 8080:80 %%IMAGE%% +``` + ## Environment variables summary - `PMA_ARBITRARY` - when set to 1 connection to the arbitrary server will be allowed @@ -110,6 +140,19 @@ Set the variable `PMA_ABSOLUTE_URI` to the fully-qualified path (`https://pma.ex - `PMA_HOSTS` - define comma separated list of address/host names of the MySQL servers - `PMA_VERBOSES` - define comma separated list of verbose names of the MySQL servers - `PMA_PORTS` - define comma separated list of ports of the MySQL servers +- `PMA_SOCKET` - define socket file for the MySQL connection +- `PMA_SOCKETS` - define comma separated list of socket files for the MySQL connections +- `PMA_SSL_DIR` - define the path used for SSL files generated from environement variables, default value is `/etc/phpmyadmin/ssl` +- `PMA_SSL` - when set to 1, defines SSL usage for the MySQL connection +- `PMA_SSLS` - comma separated list of `0` and `1` defining SSL usage for the corresponding MySQL connections +- `PMA_SSL_VERIFY` - when set to 1, enables SSL certificate verification for the MySQL connection. +- `PMA_SSL_VERIFIES` - comma-separated list of `0` and `1` to enable or disable SSL certificate verification for multiple MySQL connections. +- `PMA_SSL_CA` - in the context of mutual TLS security, allows setting your CA certificate file as a string inside the default `config.inc.php`. +- `PMA_SSL_CAS` - in the context of mutual TLS security, allows setting multiple CA certificate files as a comma-separated list of strings inside the default `config.inc.php`. +- `PMA_SSL_CERT` - in the context of mutual TLS security, allows setting your certificate file as a string inside the default `config.inc.php`. +- `PMA_SSL_CERTS` - in the context of mutual TLS security, allows setting multiple certificate files as a comma-separated list of strings inside the default `config.inc.php`. +- `PMA_SSL_KEY` - in the context of mutual TLS security, allows setting your private key file as a string inside the default `config.inc.php`. +- `PMA_SSL_KEYS` - in the context of mutual TLS security, allows setting multiple private key files as a comma-separated list of strings inside the default `config.inc.php`. - `PMA_USER` and `PMA_PASSWORD` - define username and password to use only with the `config` authentication method - `PMA_ABSOLUTE_URI` - the full URL to phpMyAdmin. Sometimes needed when used in a reverse-proxy configuration. Don't set this unless needed. See [documentation](https://docs.phpmyadmin.net/en/latest/config.html#cfg_PmaAbsoluteUri). - `PMA_CONFIG_BASE64` - if set, this option will override the default `config.inc.php` with the base64 decoded contents of the variable @@ -126,6 +169,7 @@ Set the variable `PMA_ABSOLUTE_URI` to the fully-qualified path (`https://pma.ex - `MAX_EXECUTION_TIME` - if set, will override the maximum execution time in seconds (default 600) for phpMyAdmin ([$cfg['ExecTimeLimit']](https://docs.phpmyadmin.net/en/latest/config.html#cfg_ExecTimeLimit)) and PHP [max_execution_time](https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time) (format as `[0-9+]`) - `MEMORY_LIMIT` - if set, will override the memory limit (default 512M) for phpMyAdmin ([$cfg['MemoryLimit']](https://docs.phpmyadmin.net/en/latest/config.html#cfg_MemoryLimit)) and PHP [memory_limit](https://www.php.net/manual/en/ini.core.php#ini.memory-limit) (format as `[0-9+](K,M,G)` where K is for Kilobytes, M for Megabytes, G for Gigabytes and 1K = 1024 bytes) - `UPLOAD_LIMIT` - if set, this option will override the default value for apache and php-fpm (format as `[0-9+](K,M,G)` default value is 2048K, this will change `upload_max_filesize` and `post_max_size` values) +- `TZ` - if defined, this option will change the default PHP `date.timezone` from `UTC`. See [documentation](https://www.php.net/manual/en/timezones.php) for supported values. - `HIDE_PHP_VERSION` - if defined, this option will hide the PHP version (`expose_php = Off`). Set to any value (such as `HIDE_PHP_VERSION=true`). - `APACHE_PORT` - if defined, this option will change the default Apache port from `80` in case you want it to run on a different port like an unprivileged port. Set to any port value (such as `APACHE_PORT=8090`) @@ -135,6 +179,19 @@ For usage with Docker secrets, appending `_FILE` to the `PMA_PASSWORD` environme docker run --name phpmyadmin -d -e PMA_PASSWORD_FILE=/run/secrets/db_password.txt -p 8080:80 %%IMAGE%% ``` +#### Variables that can store the file contents using `_BASE64` + +- `PMA_SSL_CA` +- `PMA_SSL_CAS` +- `PMA_SSL_KEY` +- `PMA_SSL_KEYS` +- `PMA_SSL_CERT` +- `PMA_SSL_CERTS` + +Also includes: `PMA_CONFIG_BASE64` or `PMA_USER_CONFIG_BASE64`. + +For example, the variable would be named `PMA_SSL_CA_BASE64` and the value is the base64 encoded contents of the file. + #### Variables that can be read from a file using `_FILE` - `MYSQL_ROOT_PASSWORD` diff --git a/phpmyadmin/metadata.json b/phpmyadmin/metadata.json new file mode 100644 index 000000000000..68932ac9ba2d --- /dev/null +++ b/phpmyadmin/metadata.json @@ -0,0 +1,8 @@ +{ + "hub": { + "categories": [ + "databases-and-storage", + "developer-tools" + ] + } +} diff --git a/plone/README.md b/plone/README.md index b0a4e0f1d405..dd7c00c0cdbd 100644 --- a/plone/README.md +++ b/plone/README.md @@ -24,7 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.2.13-python38`, `5.2-python38`, `5-python38`, `python38`, `5.2.13`, `5.2`, `5`, `latest`](https://github.com/plone/plone.docker/blob/fd5a572ead9cabb20b9fcb24e16631f673610118/5.2/5.2.13/debian/Dockerfile) +- [`5.2.14-python38`, `5.2-python38`, `5-python38`, `python38`, `5.2.14`, `5.2`, `5`, `latest`](https://github.com/plone/plone.docker/blob/a3a9c7e0c5ca324f488fe7354f00a997398195f7/5.2/5.2.14/debian/Dockerfile) # Quick reference (cont.) @@ -32,7 +32,7 @@ WARNING: [https://github.com/plone/plone.docker/issues](https://github.com/plone/plone.docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/plone/), [`arm64v8`](https://hub.docker.com/r/arm64v8/plone/) + [`amd64`](https://hub.docker.com/r/amd64/plone/) - **Published image artifact details**: [repo-info repo's `repos/plone/` directory](https://github.com/docker-library/repo-info/blob/master/repos/plone) ([history](https://github.com/docker-library/repo-info/commits/master/repos/plone)) diff --git a/plone/metadata.json b/plone/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/plone/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/postfixadmin/README.md b/postfixadmin/README.md index 7d4a4f146ac4..432721c80046 100644 --- a/postfixadmin/README.md +++ b/postfixadmin/README.md @@ -24,9 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.3.13-apache`, `3.3-apache`, `3-apache`, `apache`, `3.3.13`, `3.3`, `3`, `latest`](https://github.com/postfixadmin/docker/blob/0f5eefc2d1b392706a4f9b0840f04eb2a1103a81/apache/Dockerfile) -- [`3.3.13-fpm`, `3.3-fpm`, `3-fpm`, `fpm`](https://github.com/postfixadmin/docker/blob/0f5eefc2d1b392706a4f9b0840f04eb2a1103a81/fpm/Dockerfile) -- [`3.3.13-fpm-alpine`, `3.3-fpm-alpine`, `3-fpm-alpine`, `fpm-alpine`](https://github.com/postfixadmin/docker/blob/0f5eefc2d1b392706a4f9b0840f04eb2a1103a81/fpm-alpine/Dockerfile) +- [`3.3.15-apache`, `3.3-apache`, `3-apache`, `apache`, `3.3.15`, `3.3`, `3`, `latest`](https://github.com/postfixadmin/docker/blob/8fbed5d8d6b140e7c3c417a9dc45aafd5bdff774/apache/Dockerfile) + +- [`3.3.15-fpm`, `3.3-fpm`, `3-fpm`, `fpm`](https://github.com/postfixadmin/docker/blob/8fbed5d8d6b140e7c3c417a9dc45aafd5bdff774/fpm/Dockerfile) + +- [`3.3.15-fpm-alpine`, `3.3-fpm-alpine`, `3-fpm-alpine`, `fpm-alpine`](https://github.com/postfixadmin/docker/blob/8fbed5d8d6b140e7c3c417a9dc45aafd5bdff774/fpm-alpine/Dockerfile) # Quick reference (cont.) @@ -34,7 +36,7 @@ WARNING: [https://github.com/postfixadmin/docker/issues](https://github.com/postfixadmin/docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/postfixadmin/), [`arm32v5`](https://hub.docker.com/r/arm32v5/postfixadmin/), [`arm32v6`](https://hub.docker.com/r/arm32v6/postfixadmin/), [`arm32v7`](https://hub.docker.com/r/arm32v7/postfixadmin/), [`arm64v8`](https://hub.docker.com/r/arm64v8/postfixadmin/), [`i386`](https://hub.docker.com/r/i386/postfixadmin/), [`mips64le`](https://hub.docker.com/r/mips64le/postfixadmin/), [`ppc64le`](https://hub.docker.com/r/ppc64le/postfixadmin/), [`s390x`](https://hub.docker.com/r/s390x/postfixadmin/) + [`amd64`](https://hub.docker.com/r/amd64/postfixadmin/), [`arm32v5`](https://hub.docker.com/r/arm32v5/postfixadmin/), [`arm32v6`](https://hub.docker.com/r/arm32v6/postfixadmin/), [`arm32v7`](https://hub.docker.com/r/arm32v7/postfixadmin/), [`arm64v8`](https://hub.docker.com/r/arm64v8/postfixadmin/), [`i386`](https://hub.docker.com/r/i386/postfixadmin/), [`mips64le`](https://hub.docker.com/r/mips64le/postfixadmin/), [`ppc64le`](https://hub.docker.com/r/ppc64le/postfixadmin/), [`riscv64`](https://hub.docker.com/r/riscv64/postfixadmin/), [`s390x`](https://hub.docker.com/r/s390x/postfixadmin/) - **Published image artifact details**: [repo-info repo's `repos/postfixadmin/` directory](https://github.com/docker-library/repo-info/blob/master/repos/postfixadmin) ([history](https://github.com/docker-library/repo-info/commits/master/repos/postfixadmin)) @@ -103,16 +105,14 @@ $ docker run -v /local/path/to/config.local.php:/var/www/html/config.local.php \ postfixadmin ``` -... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `postfixadmin`: +Example `compose.yaml` for `postfixadmin`: ```yaml -version: '3' - services: db: - image: mysql:5.7 + image: mysql:8.0 restart: always environment: MYSQL_RANDOM_ROOT_PASSWORD: 1 @@ -135,9 +135,7 @@ services: POSTFIXADMIN_DB_PASSWORD: example ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/c011eff7d5385665f43db2e0330716da4ab68e75/postfixadmin/stack.yml) - -Run docker stack deploy -c stack.yml postfixadmin (or docker-compose -f stack.yml up), wait for it to initialize completely, and visit http://swarm-ip:8080, http://localhost:8080, or http://host-ip:8080 (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). # Image Variants diff --git a/postfixadmin/stack.yml b/postfixadmin/compose.yaml similarity index 93% rename from postfixadmin/stack.yml rename to postfixadmin/compose.yaml index b40e6c5b1abc..2a8667ba534a 100644 --- a/postfixadmin/stack.yml +++ b/postfixadmin/compose.yaml @@ -1,8 +1,6 @@ -version: '3' - services: db: - image: mysql:5.7 + image: mysql:8.0 restart: always environment: MYSQL_RANDOM_ROOT_PASSWORD: 1 diff --git a/postfixadmin/content.md b/postfixadmin/content.md index 883d589a83b5..fcf1fdf93e96 100644 --- a/postfixadmin/content.md +++ b/postfixadmin/content.md @@ -54,6 +54,6 @@ $ docker run -v /local/path/to/config.local.php:/var/www/html/config.local.php \ %%IMAGE%% ``` -%%STACK%% +%%COMPOSE%% -Run docker stack deploy -c stack.yml %%REPO%% (or docker-compose -f stack.yml up), wait for it to initialize completely, and visit http://swarm-ip:8080, http://localhost:8080, or http://host-ip:8080 (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). diff --git a/postfixadmin/metadata.json b/postfixadmin/metadata.json new file mode 100644 index 000000000000..67e782480585 --- /dev/null +++ b/postfixadmin/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "developer-tools" + ] + } +} diff --git a/postgres/README.md b/postgres/README.md index c70bc4514c13..b32ca558a02c 100644 --- a/postgres/README.md +++ b/postgres/README.md @@ -24,30 +24,53 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`16.1`, `16`, `latest`, `16.1-bookworm`, `16-bookworm`, `bookworm`](https://github.com/docker-library/postgres/blob/f85674ce472bc78b8b8a0478dacd595e44cb9616/16/bookworm/Dockerfile) -- [`16.1-bullseye`, `16-bullseye`, `bullseye`](https://github.com/docker-library/postgres/blob/f85674ce472bc78b8b8a0478dacd595e44cb9616/16/bullseye/Dockerfile) -- [`16.1-alpine3.18`, `16-alpine3.18`, `alpine3.18`, `16.1-alpine`, `16-alpine`, `alpine`](https://github.com/docker-library/postgres/blob/f85674ce472bc78b8b8a0478dacd595e44cb9616/16/alpine3.18/Dockerfile) -- [`16.1-alpine3.17`, `16-alpine3.17`, `alpine3.17`](https://github.com/docker-library/postgres/blob/f85674ce472bc78b8b8a0478dacd595e44cb9616/16/alpine3.17/Dockerfile) -- [`15.5`, `15`, `15.5-bookworm`, `15-bookworm`](https://github.com/docker-library/postgres/blob/da624f9e2e26fd185c73532ec52203aa3683f4db/15/bookworm/Dockerfile) -- [`15.5-bullseye`, `15-bullseye`](https://github.com/docker-library/postgres/blob/da624f9e2e26fd185c73532ec52203aa3683f4db/15/bullseye/Dockerfile) -- [`15.5-alpine3.18`, `15-alpine3.18`, `15.5-alpine`, `15-alpine`](https://github.com/docker-library/postgres/blob/da624f9e2e26fd185c73532ec52203aa3683f4db/15/alpine3.18/Dockerfile) -- [`15.5-alpine3.17`, `15-alpine3.17`](https://github.com/docker-library/postgres/blob/da624f9e2e26fd185c73532ec52203aa3683f4db/15/alpine3.17/Dockerfile) -- [`14.10`, `14`, `14.10-bookworm`, `14-bookworm`](https://github.com/docker-library/postgres/blob/d7660ac1e7417041e5197861d7d8c3d0954c83c4/14/bookworm/Dockerfile) -- [`14.10-bullseye`, `14-bullseye`](https://github.com/docker-library/postgres/blob/d7660ac1e7417041e5197861d7d8c3d0954c83c4/14/bullseye/Dockerfile) -- [`14.10-alpine3.18`, `14-alpine3.18`, `14.10-alpine`, `14-alpine`](https://github.com/docker-library/postgres/blob/d7660ac1e7417041e5197861d7d8c3d0954c83c4/14/alpine3.18/Dockerfile) -- [`14.10-alpine3.17`, `14-alpine3.17`](https://github.com/docker-library/postgres/blob/d7660ac1e7417041e5197861d7d8c3d0954c83c4/14/alpine3.17/Dockerfile) -- [`13.13`, `13`, `13.13-bookworm`, `13-bookworm`](https://github.com/docker-library/postgres/blob/ce930677d59d780645e69fa2fe68d4ac391b6d2e/13/bookworm/Dockerfile) -- [`13.13-bullseye`, `13-bullseye`](https://github.com/docker-library/postgres/blob/ce930677d59d780645e69fa2fe68d4ac391b6d2e/13/bullseye/Dockerfile) -- [`13.13-alpine3.18`, `13-alpine3.18`, `13.13-alpine`, `13-alpine`](https://github.com/docker-library/postgres/blob/ce930677d59d780645e69fa2fe68d4ac391b6d2e/13/alpine3.18/Dockerfile) -- [`13.13-alpine3.17`, `13-alpine3.17`](https://github.com/docker-library/postgres/blob/ce930677d59d780645e69fa2fe68d4ac391b6d2e/13/alpine3.17/Dockerfile) -- [`12.17`, `12`, `12.17-bookworm`, `12-bookworm`](https://github.com/docker-library/postgres/blob/038c4c577a3c58dddf9ec2ccaa643009b8ba414b/12/bookworm/Dockerfile) -- [`12.17-bullseye`, `12-bullseye`](https://github.com/docker-library/postgres/blob/038c4c577a3c58dddf9ec2ccaa643009b8ba414b/12/bullseye/Dockerfile) -- [`12.17-alpine3.18`, `12-alpine3.18`, `12.17-alpine`, `12-alpine`](https://github.com/docker-library/postgres/blob/038c4c577a3c58dddf9ec2ccaa643009b8ba414b/12/alpine3.18/Dockerfile) -- [`12.17-alpine3.17`, `12-alpine3.17`](https://github.com/docker-library/postgres/blob/038c4c577a3c58dddf9ec2ccaa643009b8ba414b/12/alpine3.17/Dockerfile) -- [`11.22-bookworm`, `11-bookworm`](https://github.com/docker-library/postgres/blob/f2860f3faf8d0f3993389f529f8833778b08eba4/11/bookworm/Dockerfile) -- [`11.22-bullseye`, `11-bullseye`](https://github.com/docker-library/postgres/blob/f2860f3faf8d0f3993389f529f8833778b08eba4/11/bullseye/Dockerfile) -- [`11.22-alpine3.18`, `11-alpine3.18`, `11.22-alpine`, `11-alpine`](https://github.com/docker-library/postgres/blob/f2860f3faf8d0f3993389f529f8833778b08eba4/11/alpine3.18/Dockerfile) -- [`11.22-alpine3.17`, `11-alpine3.17`](https://github.com/docker-library/postgres/blob/f2860f3faf8d0f3993389f529f8833778b08eba4/11/alpine3.17/Dockerfile) +- [`18beta1`, `18beta1-bookworm`](https://github.com/docker-library/postgres/blob/46e8474a6e8ac8460416ac62afcbdf59cfeb6366/18/bookworm/Dockerfile) + +- [`18beta1-bullseye`](https://github.com/docker-library/postgres/blob/46e8474a6e8ac8460416ac62afcbdf59cfeb6366/18/bullseye/Dockerfile) + +- [`18beta1-alpine3.22`, `18beta1-alpine`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/18/alpine3.22/Dockerfile) + +- [`18beta1-alpine3.21`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/18/alpine3.21/Dockerfile) + +- [`17.5`, `17`, `latest`, `17.5-bookworm`, `17-bookworm`, `bookworm`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/17/bookworm/Dockerfile) + +- [`17.5-bullseye`, `17-bullseye`, `bullseye`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/17/bullseye/Dockerfile) + +- [`17.5-alpine3.22`, `17-alpine3.22`, `alpine3.22`, `17.5-alpine`, `17-alpine`, `alpine`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/17/alpine3.22/Dockerfile) + +- [`17.5-alpine3.21`, `17-alpine3.21`, `alpine3.21`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/17/alpine3.21/Dockerfile) + +- [`16.9`, `16`, `16.9-bookworm`, `16-bookworm`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/16/bookworm/Dockerfile) + +- [`16.9-bullseye`, `16-bullseye`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/16/bullseye/Dockerfile) + +- [`16.9-alpine3.22`, `16-alpine3.22`, `16.9-alpine`, `16-alpine`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/16/alpine3.22/Dockerfile) + +- [`16.9-alpine3.21`, `16-alpine3.21`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/16/alpine3.21/Dockerfile) + +- [`15.13`, `15`, `15.13-bookworm`, `15-bookworm`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/15/bookworm/Dockerfile) + +- [`15.13-bullseye`, `15-bullseye`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/15/bullseye/Dockerfile) + +- [`15.13-alpine3.22`, `15-alpine3.22`, `15.13-alpine`, `15-alpine`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/15/alpine3.22/Dockerfile) + +- [`15.13-alpine3.21`, `15-alpine3.21`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/15/alpine3.21/Dockerfile) + +- [`14.18`, `14`, `14.18-bookworm`, `14-bookworm`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/14/bookworm/Dockerfile) + +- [`14.18-bullseye`, `14-bullseye`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/14/bullseye/Dockerfile) + +- [`14.18-alpine3.22`, `14-alpine3.22`, `14.18-alpine`, `14-alpine`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/14/alpine3.22/Dockerfile) + +- [`14.18-alpine3.21`, `14-alpine3.21`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/14/alpine3.21/Dockerfile) + +- [`13.21`, `13`, `13.21-bookworm`, `13-bookworm`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/13/bookworm/Dockerfile) + +- [`13.21-bullseye`, `13-bullseye`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/13/bullseye/Dockerfile) + +- [`13.21-alpine3.22`, `13-alpine3.22`, `13.21-alpine`, `13-alpine`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/13/alpine3.22/Dockerfile) + +- [`13.21-alpine3.21`, `13-alpine3.21`](https://github.com/docker-library/postgres/blob/2c6fe8daca9d2ccc143afe6b1cdbc1eb80379d3f/13/alpine3.21/Dockerfile) # Quick reference (cont.) @@ -55,7 +78,7 @@ WARNING: [https://github.com/docker-library/postgres/issues](https://github.com/docker-library/postgres/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/postgres/), [`arm32v5`](https://hub.docker.com/r/arm32v5/postgres/), [`arm32v6`](https://hub.docker.com/r/arm32v6/postgres/), [`arm32v7`](https://hub.docker.com/r/arm32v7/postgres/), [`arm64v8`](https://hub.docker.com/r/arm64v8/postgres/), [`i386`](https://hub.docker.com/r/i386/postgres/), [`mips64le`](https://hub.docker.com/r/mips64le/postgres/), [`ppc64le`](https://hub.docker.com/r/ppc64le/postgres/), [`s390x`](https://hub.docker.com/r/s390x/postgres/) + [`amd64`](https://hub.docker.com/r/amd64/postgres/), [`arm32v5`](https://hub.docker.com/r/arm32v5/postgres/), [`arm32v6`](https://hub.docker.com/r/arm32v6/postgres/), [`arm32v7`](https://hub.docker.com/r/arm32v7/postgres/), [`arm64v8`](https://hub.docker.com/r/arm64v8/postgres/), [`i386`](https://hub.docker.com/r/i386/postgres/), [`mips64le`](https://hub.docker.com/r/mips64le/postgres/), [`ppc64le`](https://hub.docker.com/r/ppc64le/postgres/), [`riscv64`](https://hub.docker.com/r/riscv64/postgres/), [`s390x`](https://hub.docker.com/r/s390x/postgres/) - **Published image artifact details**: [repo-info repo's `repos/postgres/` directory](https://github.com/docker-library/repo-info/blob/master/repos/postgres) ([history](https://github.com/docker-library/repo-info/commits/master/repos/postgres)) @@ -106,19 +129,26 @@ postgres=# SELECT 1; (1 row) ``` -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `postgres`: +Example `compose.yaml` for `postgres`: ```yaml # Use postgres/example user/password credentials -version: '3.1' services: db: image: postgres restart: always + # set shared memory limit when using docker compose + shm_size: 128mb + # or set shared memory limit when deploy via swarm stack + #volumes: + # - type: tmpfs + # target: /dev/shm + # tmpfs: + # size: 134217728 # 128*2^20 bytes = 128Mb environment: POSTGRES_PASSWORD: example @@ -129,9 +159,7 @@ services: - 8080:8080 ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/9efeec18b6b2ed232cf0fbd3914b6211e16e242c/postgres/stack.yml) - -Run `docker stack deploy -c stack.yml postgres` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). # How to extend this image @@ -189,7 +217,11 @@ See the PostgreSQL documentation on [`pg_hba.conf`](https://www.postgresql.org/d ### `PGDATA` -> **Important Note:** when mounting a volume to `/var/lib/postgresql`, the `/var/lib/postgresql/data` path is a local volume from the container runtime, thus data is not persisted on the mounted volume. +> **Important Change:** [the `PGDATA` environment variable of the image was changed to be version specific in PostgreSQL 18 and above](https://github.com/docker-library/postgres/pull/1259). For 18 it is `/var/lib/postgresql/18/docker`. Later versions will replace `18` with their respective major version (e.g., `/var/lib/postgresql/19/docker` for PostgreSQL `19.x`). The defined `VOLUME` was changed in 18 and above to `/var/lib/postgresql`. Mounts and volumes should be targeted at the updated location. This will allow users upgrading between PostgreSQL major releases to use the faster `--link` when running `pg_upgrade` and mounting `/var/lib/postgresql`. + +Users who wish to opt-in to this change on older releases can do so by setting `PGDATA` explicitly (`--env PGDATA=/var/lib/postgresql/17/docker --volume some-postgres:/var/lib/postgresql`). To migrate pre-existing data, adjust the volume's folder structure appropriately first (moving all database files into a `PG_MAJOR/docker` subdirectory). + +> **Important Note:** (for PostgreSQL 17 and below) Mount the data volume at `/var/lib/postgresql/data` and not at `/var/lib/postgresql` because mounts at the latter path WILL NOT PERSIST database data when the container is re-created. The Dockerfile that builds the image declares a volume at `/var/lib/postgresql/data` and if no data volume is mounted at that path then the container runtime will automatically create an [anonymous volume](https://docs.docker.com/engine/storage/#volumes) that is not reused across container re-creations. Data will be written to the anonymous volume rather than your intended data volume and won't persist when the container is deleted and re-created. This optional variable can be used to define another location - like a subdirectory - for the database files. The default is `/var/lib/postgresql/data`. If the data volume you're using is a filesystem mountpoint (like with GCE persistent disks), or remote folder that cannot be chowned to the `postgres` user (like some NFS mounts), or contains folders/files (e.g. `lost+found`), Postgres `initdb` requires a subdirectory to be created within the mountpoint to contain the data. @@ -225,7 +257,7 @@ If you would like to do additional initialization in an image derived from this For example, to add an additional user and database, add the following to `/docker-entrypoint-initdb.d/init-user-db.sh`: ```bash -#!/bin/bash +#!/usr/bin/env bash set -e psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL @@ -334,9 +366,9 @@ The three easiest ways to get around this: # Caveats -If there is no database when `postgres` starts in a container, then `postgres` will create the default database for you. While this is the expected behavior of `postgres`, this means that it will not accept incoming connections during that time. This may cause issues when using automation tools, such as `docker-compose`, that start several containers simultaneously. +If there is no database when `postgres` starts in a container, then `postgres` will create the default database for you. While this is the expected behavior of `postgres`, this means that it will not accept incoming connections during that time. This may cause issues when using automation tools, such as `docker compose`, that start several containers simultaneously. -Also note that the default `/dev/shm` size for containers is 64MB. If the shared memory is exhausted you will encounter `ERROR: could not resize shared memory segment . . . : No space left on device`. You will want to pass [`--shm-size=256MB`](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources) for example to `docker run`, or alternatively in [`docker-compose`](https://docs.docker.com/compose/compose-file/#shm_size). +Also note that the default `/dev/shm` size for containers is 64MB. If the shared memory is exhausted you will encounter `ERROR: could not resize shared memory segment . . . : No space left on device`. You will want to pass [`--shm-size=256MB`](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources) for example to `docker run`, or alternatively in [`docker compose`](https://docs.docker.com/compose/compose-file/05-services/#shm_size). ## Where to Store Data diff --git a/postgres/compose.yaml b/postgres/compose.yaml new file mode 100644 index 000000000000..47ca8a68a513 --- /dev/null +++ b/postgres/compose.yaml @@ -0,0 +1,23 @@ +# Use postgres/example user/password credentials + +services: + + db: + image: postgres + restart: always + # set shared memory limit when using docker compose + shm_size: 128mb + # or set shared memory limit when deploy via swarm stack + #volumes: + # - type: tmpfs + # target: /dev/shm + # tmpfs: + # size: 134217728 # 128*2^20 bytes = 128Mb + environment: + POSTGRES_PASSWORD: example + + adminer: + image: adminer + restart: always + ports: + - 8080:8080 diff --git a/postgres/content.md b/postgres/content.md index 0f98b18ed2a0..87cd0c59305b 100644 --- a/postgres/content.md +++ b/postgres/content.md @@ -36,9 +36,9 @@ postgres=# SELECT 1; (1 row) ``` -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). # How to extend this image @@ -96,7 +96,11 @@ See the PostgreSQL documentation on [`pg_hba.conf`](https://www.postgresql.org/d ### `PGDATA` -> **Important Note:** when mounting a volume to `/var/lib/postgresql`, the `/var/lib/postgresql/data` path is a local volume from the container runtime, thus data is not persisted on the mounted volume. +> **Important Change:** [the `PGDATA` environment variable of the image was changed to be version specific in PostgreSQL 18 and above](https://github.com/docker-library/postgres/pull/1259). For 18 it is `/var/lib/postgresql/18/docker`. Later versions will replace `18` with their respective major version (e.g., `/var/lib/postgresql/19/docker` for PostgreSQL `19.x`). The defined `VOLUME` was changed in 18 and above to `/var/lib/postgresql`. Mounts and volumes should be targeted at the updated location. This will allow users upgrading between PostgreSQL major releases to use the faster `--link` when running `pg_upgrade` and mounting `/var/lib/postgresql`. + +Users who wish to opt-in to this change on older releases can do so by setting `PGDATA` explicitly (`--env PGDATA=/var/lib/postgresql/17/docker --volume some-postgres:/var/lib/postgresql`). To migrate pre-existing data, adjust the volume's folder structure appropriately first (moving all database files into a `PG_MAJOR/docker` subdirectory). + +> **Important Note:** (for PostgreSQL 17 and below) Mount the data volume at `/var/lib/postgresql/data` and not at `/var/lib/postgresql` because mounts at the latter path WILL NOT PERSIST database data when the container is re-created. The Dockerfile that builds the image declares a volume at `/var/lib/postgresql/data` and if no data volume is mounted at that path then the container runtime will automatically create an [anonymous volume](https://docs.docker.com/engine/storage/#volumes) that is not reused across container re-creations. Data will be written to the anonymous volume rather than your intended data volume and won't persist when the container is deleted and re-created. This optional variable can be used to define another location - like a subdirectory - for the database files. The default is `/var/lib/postgresql/data`. If the data volume you're using is a filesystem mountpoint (like with GCE persistent disks), or remote folder that cannot be chowned to the `postgres` user (like some NFS mounts), or contains folders/files (e.g. `lost+found`), Postgres `initdb` requires a subdirectory to be created within the mountpoint to contain the data. @@ -132,7 +136,7 @@ If you would like to do additional initialization in an image derived from this For example, to add an additional user and database, add the following to `/docker-entrypoint-initdb.d/init-user-db.sh`: ```bash -#!/bin/bash +#!/usr/bin/env bash set -e psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL @@ -241,9 +245,9 @@ The three easiest ways to get around this: # Caveats -If there is no database when `postgres` starts in a container, then `postgres` will create the default database for you. While this is the expected behavior of `postgres`, this means that it will not accept incoming connections during that time. This may cause issues when using automation tools, such as `docker-compose`, that start several containers simultaneously. +If there is no database when `postgres` starts in a container, then `postgres` will create the default database for you. While this is the expected behavior of `postgres`, this means that it will not accept incoming connections during that time. This may cause issues when using automation tools, such as `docker compose`, that start several containers simultaneously. -Also note that the default `/dev/shm` size for containers is 64MB. If the shared memory is exhausted you will encounter `ERROR: could not resize shared memory segment . . . : No space left on device`. You will want to pass [`--shm-size=256MB`](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources) for example to `docker run`, or alternatively in [`docker-compose`](https://docs.docker.com/compose/compose-file/#shm_size). +Also note that the default `/dev/shm` size for containers is 64MB. If the shared memory is exhausted you will encounter `ERROR: could not resize shared memory segment . . . : No space left on device`. You will want to pass [`--shm-size=256MB`](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources) for example to `docker run`, or alternatively in [`docker compose`](https://docs.docker.com/compose/compose-file/05-services/#shm_size). ## Where to Store Data diff --git a/postgres/metadata.json b/postgres/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/postgres/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/postgres/stack.yml b/postgres/stack.yml deleted file mode 100644 index 3994b0c470c2..000000000000 --- a/postgres/stack.yml +++ /dev/null @@ -1,16 +0,0 @@ -# Use postgres/example user/password credentials -version: '3.1' - -services: - - db: - image: postgres - restart: always - environment: - POSTGRES_PASSWORD: example - - adminer: - image: adminer - restart: always - ports: - - 8080:8080 diff --git a/push.pl b/push.pl index 4467a332b2c1..d8895772b030 100755 --- a/push.pl +++ b/push.pl @@ -8,13 +8,16 @@ use File::Temp; use Getopt::Long; use Mojo::File; +use Mojo::JSON qw(decode_json); use Mojo::UserAgent; use Mojo::Util qw(decode encode trim url_escape); use Term::UI; use Term::ReadLine; -my $hubLengthLimit = 25_000; +require bytes; # this is not recommended, but we *only* use "bytes::length" from it to determine whether we need to do a more correct conversion to/from bytes for trimming (see $hubLengthLimit and usages) + +my $hubLengthLimit = 25_000; # NOTE: this is *bytes*, not characters 🙃 my $githubBase = 'https://github.com/docker-library/docs/tree/master'; # TODO point this at the correct "dist-xxx" branch based on "namespace" my $username; @@ -50,21 +53,8 @@ my $token = $login->res->json->{token}; -my $csrf; -for my $cookie (@{ $login->res->cookies }) { - if ($cookie->name eq 'csrftoken') { - $csrf = $cookie->value; - last; - } -} -die 'missing CSRF token' unless defined $csrf; - -my $attemptLogin = $ua->post($dockerHub . '/attempt-login/' => {} => json => { jwt => $token }); -die 'attempt-login failed' unless $attemptLogin->res->is_success; - my $authorizationHeader = { Authorization => "JWT $token", - 'X-CSRFToken' => $csrf, }; my $supportedTagsRegex = qr%^(# Supported tags and respective `Dockerfile` links\n\n)(.*?\n)(?=# |\[)%ms; @@ -87,7 +77,7 @@ sub prompt_for_edit { $proposedText =~ s%$supportedTagsRegex%$sponsoredLinks$1$2%; } - if ($lengthLimit > 0 && length($proposedText) > $lengthLimit) { + if ($lengthLimit > 0 && bytes::length($proposedText) > $lengthLimit) { # TODO https://github.com/docker/hub-beta-feedback/issues/238 my $fullUrl = "$githubBase/$proposedFile"; my $shortTags = "-\tSee [\"Supported tags and respective \`Dockerfile\` links\" at $fullUrl]($fullUrl#supported-tags-and-respective-dockerfile-links)\n\n"; @@ -103,9 +93,18 @@ sub prompt_for_edit { $trimmedText =~ s%$supportedTagsRegex%$sponsoredLinks$1$tagsNote%ms; # (we scrape until the next "h1" or a line starting with a link which is likely a build status badge for an architecture-namespace) - if (length($trimmedText) > $lengthLimit) { - # ... if that doesn't do the trick, then do our older naïve description trimming - $trimmedText = $startingNote . substr $proposedText, 0, ($lengthLimit - length($startingNote . $endingNote)); + if (bytes::length($trimmedText) > $lengthLimit) { + # ... if that doesn't do the trick, then do our older naïve description trimming (respecting utf8; see https://www.perlmonks.org/?node_id=1230659 and https://perldoc.perl.org/utf8) + $trimmedText = $proposedText; + utf8::encode($trimmedText); + $trimmedText = $startingNote . substr $trimmedText, 0, ($lengthLimit - bytes::length($startingNote . $endingNote)); + # (deal with the potential of "bytes::substr" here cutting us in the middle of a unicode glyph, which is arguably a much worse problem than the markdown cutting described below 😬 again, see https://www.perlmonks.org/?node_id=1230659) + $trimmedText =~ s/(?: + [\xC0-\xDF] + | [\xE0-\xEF] [\x80-\xBF]? + | [\xF0-\xF7] [\x80-\xBF]{0,2} + )\z//x; + utf8::decode($trimmedText); # adding the "ending note" (https://github.com/docker/hub-feedback/issues/2220) is a bit more complicated as we have to deal with cutting off markdown ~cleanly so it renders correctly # TODO deal with "```foo" appropriately (so we don't drop our note in the middle of a code block) - the Hub's current markdown rendering (2022-04-07) does not auto-close a dangling block like this, so this isn't urgent @@ -224,6 +223,35 @@ sub prompt_for_edit { my $repoDetails = $repoTx->res->json; $repoDetails->{description} //= ''; $repoDetails->{full_description} //= ''; + $repoDetails->{categories} //= []; + my @repoCategories = sort map { $_->{slug} } @{ $repoDetails->{categories} }; + + # read local categories from metadata.json + my $repoMetadataBytes = Mojo::File->new($repoName . '/metadata.json')->slurp; + my $repoMetadataJson = decode_json $repoMetadataBytes; + my @localRepoCategories = sort @{ $repoMetadataJson->{hub}{categories} }; + + # check if the local categories differ in length or items from the remote + my $needCat = @localRepoCategories != @repoCategories; + if (! $needCat) { + foreach my $i (0 .. @localRepoCategories) { + last if ! defined $repoCategories[$i]; # length difference already covered, so we can bail + if ($localRepoCategories[$i] ne $repoCategories[$i]) { + $needCat = 1; + last; + } + } + } + if ($needCat) { + say 'updating ' . $repoName . ' categories'; + my $catsPatch = $ua->patch($repoUrl . 'categories/' => { %$authorizationHeader, Accept => 'application/json' } => json => [ + map { { + slug => $_, + name => 'All those moments will be lost in time, like tears in rain... Time to die.', + } } @{ $repoMetadataJson->{hub}{categories} } + ]); + die 'patch to categories failed: ' . $catsPatch->res->text unless $catsPatch->res->is_success; + } my $hubShort = prompt_for_edit($repoDetails->{description}, $repoName . '/README-short.txt'); my $hubLong = prompt_for_edit($repoDetails->{full_description}, $repoName . '/README.md', $hubLengthLimit); diff --git a/push.sh b/push.sh index a1e43e346ef6..92ac00f6f6df 100755 --- a/push.sh +++ b/push.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -e cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" diff --git a/pypy/README.md b/pypy/README.md index d0f868854af5..4960358b23ce 100644 --- a/pypy/README.md +++ b/pypy/README.md @@ -28,48 +28,72 @@ WARNING: ## Simple Tags -- [`3.10-7.3.13-bookworm`, `3.10-7.3-bookworm`, `3.10-7-bookworm`, `3.10-bookworm`, `3-7.3.13-bookworm`, `3-7.3-bookworm`, `3-7-bookworm`, `3-bookworm`, `bookworm`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/bookworm/Dockerfile) -- [`3.10-7.3.13-slim-bookworm`, `3.10-7.3-slim-bookworm`, `3.10-7-slim-bookworm`, `3.10-slim-bookworm`, `3-7.3.13-slim-bookworm`, `3-7.3-slim-bookworm`, `3-7-slim-bookworm`, `3-slim-bookworm`, `slim-bookworm`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/slim-bookworm/Dockerfile) -- [`3.10-7.3.13-bullseye`, `3.10-7.3-bullseye`, `3.10-7-bullseye`, `3.10-bullseye`, `3-7.3.13-bullseye`, `3-7.3-bullseye`, `3-7-bullseye`, `3-bullseye`, `bullseye`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/bullseye/Dockerfile) -- [`3.10-7.3.13-slim`, `3.10-7.3-slim`, `3.10-7-slim`, `3.10-slim`, `3-7.3.13-slim`, `3-7.3-slim`, `3-7-slim`, `3-slim`, `slim`, `3.10-7.3.13-slim-bullseye`, `3.10-7.3-slim-bullseye`, `3.10-7-slim-bullseye`, `3.10-slim-bullseye`, `3-7.3.13-slim-bullseye`, `3-7.3-slim-bullseye`, `3-7-slim-bullseye`, `3-slim-bullseye`, `slim-bullseye`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/slim-bullseye/Dockerfile) -- [`3.10-7.3.13-windowsservercore-ltsc2022`, `3.10-7.3-windowsservercore-ltsc2022`, `3.10-7-windowsservercore-ltsc2022`, `3.10-windowsservercore-ltsc2022`, `3-7.3.13-windowsservercore-ltsc2022`, `3-7.3-windowsservercore-ltsc2022`, `3-7-windowsservercore-ltsc2022`, `3-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/windows/windowsservercore-ltsc2022/Dockerfile) -- [`3.10-7.3.13-windowsservercore-1809`, `3.10-7.3-windowsservercore-1809`, `3.10-7-windowsservercore-1809`, `3.10-windowsservercore-1809`, `3-7.3.13-windowsservercore-1809`, `3-7.3-windowsservercore-1809`, `3-7-windowsservercore-1809`, `3-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/windows/windowsservercore-1809/Dockerfile) -- [`3.9-7.3.13-bookworm`, `3.9-7.3-bookworm`, `3.9-7-bookworm`, `3.9-bookworm`](https://github.com/docker-library/pypy/blob/eb44bfb226b37bf5e8f73d845f74c98742db637a/3.9/bookworm/Dockerfile) -- [`3.9-7.3.13-slim-bookworm`, `3.9-7.3-slim-bookworm`, `3.9-7-slim-bookworm`, `3.9-slim-bookworm`](https://github.com/docker-library/pypy/blob/eb44bfb226b37bf5e8f73d845f74c98742db637a/3.9/slim-bookworm/Dockerfile) -- [`3.9-7.3.13-bullseye`, `3.9-7.3-bullseye`, `3.9-7-bullseye`, `3.9-bullseye`](https://github.com/docker-library/pypy/blob/eb44bfb226b37bf5e8f73d845f74c98742db637a/3.9/bullseye/Dockerfile) -- [`3.9-7.3.13-slim`, `3.9-7.3-slim`, `3.9-7-slim`, `3.9-slim`, `3.9-7.3.13-slim-bullseye`, `3.9-7.3-slim-bullseye`, `3.9-7-slim-bullseye`, `3.9-slim-bullseye`](https://github.com/docker-library/pypy/blob/eb44bfb226b37bf5e8f73d845f74c98742db637a/3.9/slim-bullseye/Dockerfile) -- [`3.9-7.3.13-windowsservercore-ltsc2022`, `3.9-7.3-windowsservercore-ltsc2022`, `3.9-7-windowsservercore-ltsc2022`, `3.9-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/004f772ff2b54b5eb70a83babb2b1e49b3831df3/3.9/windows/windowsservercore-ltsc2022/Dockerfile) -- [`3.9-7.3.13-windowsservercore-1809`, `3.9-7.3-windowsservercore-1809`, `3.9-7-windowsservercore-1809`, `3.9-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/004f772ff2b54b5eb70a83babb2b1e49b3831df3/3.9/windows/windowsservercore-1809/Dockerfile) -- [`2.7-7.3.13-bookworm`, `2.7-7.3-bookworm`, `2.7-7-bookworm`, `2.7-bookworm`, `2-7.3.13-bookworm`, `2-7.3-bookworm`, `2-7-bookworm`, `2-bookworm`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/bookworm/Dockerfile) -- [`2.7-7.3.13-slim-bookworm`, `2.7-7.3-slim-bookworm`, `2.7-7-slim-bookworm`, `2.7-slim-bookworm`, `2-7.3.13-slim-bookworm`, `2-7.3-slim-bookworm`, `2-7-slim-bookworm`, `2-slim-bookworm`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/slim-bookworm/Dockerfile) -- [`2.7-7.3.13-bullseye`, `2.7-7.3-bullseye`, `2.7-7-bullseye`, `2.7-bullseye`, `2-7.3.13-bullseye`, `2-7.3-bullseye`, `2-7-bullseye`, `2-bullseye`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/bullseye/Dockerfile) -- [`2.7-7.3.13-slim`, `2.7-7.3-slim`, `2.7-7-slim`, `2.7-slim`, `2-7.3.13-slim`, `2-7.3-slim`, `2-7-slim`, `2-slim`, `2.7-7.3.13-slim-bullseye`, `2.7-7.3-slim-bullseye`, `2.7-7-slim-bullseye`, `2.7-slim-bullseye`, `2-7.3.13-slim-bullseye`, `2-7.3-slim-bullseye`, `2-7-slim-bullseye`, `2-slim-bullseye`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/slim-bullseye/Dockerfile) -- [`2.7-7.3.13-windowsservercore-ltsc2022`, `2.7-7.3-windowsservercore-ltsc2022`, `2.7-7-windowsservercore-ltsc2022`, `2.7-windowsservercore-ltsc2022`, `2-7.3.13-windowsservercore-ltsc2022`, `2-7.3-windowsservercore-ltsc2022`, `2-7-windowsservercore-ltsc2022`, `2-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/windows/windowsservercore-ltsc2022/Dockerfile) -- [`2.7-7.3.13-windowsservercore-1809`, `2.7-7.3-windowsservercore-1809`, `2.7-7-windowsservercore-1809`, `2.7-windowsservercore-1809`, `2-7.3.13-windowsservercore-1809`, `2-7.3-windowsservercore-1809`, `2-7-windowsservercore-1809`, `2-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/windows/windowsservercore-1809/Dockerfile) +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) + +- [`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) ## Shared Tags -- `3.10-7.3.13`, `3.10-7.3`, `3.10-7`, `3.10`, `3-7.3.13`, `3-7.3`, `3-7`, `3`, `latest`: - - [`3.10-7.3.13-bullseye`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/bullseye/Dockerfile) - - [`3.10-7.3.13-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.10-7.3.13-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/windows/windowsservercore-1809/Dockerfile) -- `3.10-7.3.13-windowsservercore`, `3.10-7.3-windowsservercore`, `3.10-7-windowsservercore`, `3.10-windowsservercore`, `3-7.3.13-windowsservercore`, `3-7.3-windowsservercore`, `3-7-windowsservercore`, `3-windowsservercore`, `windowsservercore`: - - [`3.10-7.3.13-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.10-7.3.13-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/5e62c69facf8055515e337881b91a51050c02bdb/3.10/windows/windowsservercore-1809/Dockerfile) -- `3.9-7.3.13`, `3.9-7.3`, `3.9-7`, `3.9`: - - [`3.9-7.3.13-bullseye`](https://github.com/docker-library/pypy/blob/eb44bfb226b37bf5e8f73d845f74c98742db637a/3.9/bullseye/Dockerfile) - - [`3.9-7.3.13-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/004f772ff2b54b5eb70a83babb2b1e49b3831df3/3.9/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.9-7.3.13-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/004f772ff2b54b5eb70a83babb2b1e49b3831df3/3.9/windows/windowsservercore-1809/Dockerfile) -- `3.9-7.3.13-windowsservercore`, `3.9-7.3-windowsservercore`, `3.9-7-windowsservercore`, `3.9-windowsservercore`: - - [`3.9-7.3.13-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/004f772ff2b54b5eb70a83babb2b1e49b3831df3/3.9/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.9-7.3.13-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/004f772ff2b54b5eb70a83babb2b1e49b3831df3/3.9/windows/windowsservercore-1809/Dockerfile) -- `2.7-7.3.13`, `2.7-7.3`, `2.7-7`, `2.7`, `2-7.3.13`, `2-7.3`, `2-7`, `2`: - - [`2.7-7.3.13-bullseye`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/bullseye/Dockerfile) - - [`2.7-7.3.13-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/windows/windowsservercore-ltsc2022/Dockerfile) - - [`2.7-7.3.13-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/windows/windowsservercore-1809/Dockerfile) -- `2.7-7.3.13-windowsservercore`, `2.7-7.3-windowsservercore`, `2.7-7-windowsservercore`, `2.7-windowsservercore`, `2-7.3.13-windowsservercore`, `2-7.3-windowsservercore`, `2-7-windowsservercore`, `2-windowsservercore`: - - [`2.7-7.3.13-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/windows/windowsservercore-ltsc2022/Dockerfile) - - [`2.7-7.3.13-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/aa454a51687d87368d17c300dd06e4916ab4c539/2.7/windows/windowsservercore-1809/Dockerfile) +- `3.11-7.3.19`, `3.11-7.3`, `3.11-7`, `3.11`: + + - [`3.11-7.3.19-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/bookworm/Dockerfile) + - [`3.11-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2025/Dockerfile) + - [`3.11-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2022/Dockerfile) + +- `3.11-7.3.19-windowsservercore`, `3.11-7.3-windowsservercore`, `3.11-7-windowsservercore`, `3.11-windowsservercore`: + + - [`3.11-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2025/Dockerfile) + - [`3.11-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2022/Dockerfile) + +- `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`: + + - [`3.10-7.3.19-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/bookworm/Dockerfile) + - [`3.10-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2025/Dockerfile) + - [`3.10-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2022/Dockerfile) + +- `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`: + + - [`3.10-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2025/Dockerfile) + - [`3.10-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2022/Dockerfile) + +- `2.7-7.3.19`, `2.7-7.3`, `2.7-7`, `2.7`, `2-7.3.19`, `2-7.3`, `2-7`, `2`: + + - [`2.7-7.3.19-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/bookworm/Dockerfile) + - [`2.7-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2025/Dockerfile) + - [`2.7-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2022/Dockerfile) + +- `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`: + + - [`2.7-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2025/Dockerfile) + - [`2.7-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2022/Dockerfile) # Quick reference (cont.) diff --git a/pypy/metadata.json b/pypy/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/pypy/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/python/README.md b/python/README.md index 01b993c0d033..f270c2087954 100644 --- a/python/README.md +++ b/python/README.md @@ -28,78 +28,125 @@ WARNING: ## Simple Tags -- [`3.13.0a1-bookworm`, `3.13-rc-bookworm`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/bookworm/Dockerfile) -- [`3.13.0a1-slim-bookworm`, `3.13-rc-slim-bookworm`, `3.13.0a1-slim`, `3.13-rc-slim`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/slim-bookworm/Dockerfile) -- [`3.13.0a1-bullseye`, `3.13-rc-bullseye`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/bullseye/Dockerfile) -- [`3.13.0a1-slim-bullseye`, `3.13-rc-slim-bullseye`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/slim-bullseye/Dockerfile) -- [`3.13.0a1-alpine3.18`, `3.13-rc-alpine3.18`, `3.13.0a1-alpine`, `3.13-rc-alpine`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/alpine3.18/Dockerfile) -- [`3.13.0a1-alpine3.17`, `3.13-rc-alpine3.17`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/alpine3.17/Dockerfile) -- [`3.13.0a1-windowsservercore-ltsc2022`, `3.13-rc-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/windows/windowsservercore-ltsc2022/Dockerfile) -- [`3.13.0a1-windowsservercore-1809`, `3.13-rc-windowsservercore-1809`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/windows/windowsservercore-1809/Dockerfile) -- [`3.12.0-bookworm`, `3.12-bookworm`, `3-bookworm`, `bookworm`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/bookworm/Dockerfile) -- [`3.12.0-slim-bookworm`, `3.12-slim-bookworm`, `3-slim-bookworm`, `slim-bookworm`, `3.12.0-slim`, `3.12-slim`, `3-slim`, `slim`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/slim-bookworm/Dockerfile) -- [`3.12.0-bullseye`, `3.12-bullseye`, `3-bullseye`, `bullseye`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/bullseye/Dockerfile) -- [`3.12.0-slim-bullseye`, `3.12-slim-bullseye`, `3-slim-bullseye`, `slim-bullseye`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/slim-bullseye/Dockerfile) -- [`3.12.0-alpine3.18`, `3.12-alpine3.18`, `3-alpine3.18`, `alpine3.18`, `3.12.0-alpine`, `3.12-alpine`, `3-alpine`, `alpine`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/alpine3.18/Dockerfile) -- [`3.12.0-alpine3.17`, `3.12-alpine3.17`, `3-alpine3.17`, `alpine3.17`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/alpine3.17/Dockerfile) -- [`3.12.0-windowsservercore-ltsc2022`, `3.12-windowsservercore-ltsc2022`, `3-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/windows/windowsservercore-ltsc2022/Dockerfile) -- [`3.12.0-windowsservercore-1809`, `3.12-windowsservercore-1809`, `3-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/windows/windowsservercore-1809/Dockerfile) -- [`3.11.6-bookworm`, `3.11-bookworm`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/bookworm/Dockerfile) -- [`3.11.6-slim-bookworm`, `3.11-slim-bookworm`, `3.11.6-slim`, `3.11-slim`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/slim-bookworm/Dockerfile) -- [`3.11.6-bullseye`, `3.11-bullseye`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/bullseye/Dockerfile) -- [`3.11.6-slim-bullseye`, `3.11-slim-bullseye`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/slim-bullseye/Dockerfile) -- [`3.11.6-alpine3.18`, `3.11-alpine3.18`, `3.11.6-alpine`, `3.11-alpine`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/alpine3.18/Dockerfile) -- [`3.11.6-alpine3.17`, `3.11-alpine3.17`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/alpine3.17/Dockerfile) -- [`3.11.6-windowsservercore-ltsc2022`, `3.11-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/windows/windowsservercore-ltsc2022/Dockerfile) -- [`3.11.6-windowsservercore-1809`, `3.11-windowsservercore-1809`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/windows/windowsservercore-1809/Dockerfile) -- [`3.10.13-bookworm`, `3.10-bookworm`](https://github.com/docker-library/python/blob/b34fc81375758e84dec797e9210a079b4889352e/3.10/bookworm/Dockerfile) -- [`3.10.13-slim-bookworm`, `3.10-slim-bookworm`, `3.10.13-slim`, `3.10-slim`](https://github.com/docker-library/python/blob/b34fc81375758e84dec797e9210a079b4889352e/3.10/slim-bookworm/Dockerfile) -- [`3.10.13-bullseye`, `3.10-bullseye`](https://github.com/docker-library/python/blob/b34fc81375758e84dec797e9210a079b4889352e/3.10/bullseye/Dockerfile) -- [`3.10.13-slim-bullseye`, `3.10-slim-bullseye`](https://github.com/docker-library/python/blob/b34fc81375758e84dec797e9210a079b4889352e/3.10/slim-bullseye/Dockerfile) -- [`3.10.13-alpine3.18`, `3.10-alpine3.18`, `3.10.13-alpine`, `3.10-alpine`](https://github.com/docker-library/python/blob/b34fc81375758e84dec797e9210a079b4889352e/3.10/alpine3.18/Dockerfile) -- [`3.10.13-alpine3.17`, `3.10-alpine3.17`](https://github.com/docker-library/python/blob/b34fc81375758e84dec797e9210a079b4889352e/3.10/alpine3.17/Dockerfile) -- [`3.9.18-bookworm`, `3.9-bookworm`](https://github.com/docker-library/python/blob/3c7651b89037c24ea1c179c4584a1326a990f687/3.9/bookworm/Dockerfile) -- [`3.9.18-slim-bookworm`, `3.9-slim-bookworm`, `3.9.18-slim`, `3.9-slim`](https://github.com/docker-library/python/blob/3c7651b89037c24ea1c179c4584a1326a990f687/3.9/slim-bookworm/Dockerfile) -- [`3.9.18-bullseye`, `3.9-bullseye`](https://github.com/docker-library/python/blob/3c7651b89037c24ea1c179c4584a1326a990f687/3.9/bullseye/Dockerfile) -- [`3.9.18-slim-bullseye`, `3.9-slim-bullseye`](https://github.com/docker-library/python/blob/3c7651b89037c24ea1c179c4584a1326a990f687/3.9/slim-bullseye/Dockerfile) -- [`3.9.18-alpine3.18`, `3.9-alpine3.18`, `3.9.18-alpine`, `3.9-alpine`](https://github.com/docker-library/python/blob/3c7651b89037c24ea1c179c4584a1326a990f687/3.9/alpine3.18/Dockerfile) -- [`3.9.18-alpine3.17`, `3.9-alpine3.17`](https://github.com/docker-library/python/blob/3c7651b89037c24ea1c179c4584a1326a990f687/3.9/alpine3.17/Dockerfile) -- [`3.8.18-bookworm`, `3.8-bookworm`](https://github.com/docker-library/python/blob/bcb484c9ef3b745f9a5b05854a875efc79a7db10/3.8/bookworm/Dockerfile) -- [`3.8.18-slim-bookworm`, `3.8-slim-bookworm`, `3.8.18-slim`, `3.8-slim`](https://github.com/docker-library/python/blob/bcb484c9ef3b745f9a5b05854a875efc79a7db10/3.8/slim-bookworm/Dockerfile) -- [`3.8.18-bullseye`, `3.8-bullseye`](https://github.com/docker-library/python/blob/bcb484c9ef3b745f9a5b05854a875efc79a7db10/3.8/bullseye/Dockerfile) -- [`3.8.18-slim-bullseye`, `3.8-slim-bullseye`](https://github.com/docker-library/python/blob/bcb484c9ef3b745f9a5b05854a875efc79a7db10/3.8/slim-bullseye/Dockerfile) -- [`3.8.18-alpine3.18`, `3.8-alpine3.18`, `3.8.18-alpine`, `3.8-alpine`](https://github.com/docker-library/python/blob/bcb484c9ef3b745f9a5b05854a875efc79a7db10/3.8/alpine3.18/Dockerfile) -- [`3.8.18-alpine3.17`, `3.8-alpine3.17`](https://github.com/docker-library/python/blob/bcb484c9ef3b745f9a5b05854a875efc79a7db10/3.8/alpine3.17/Dockerfile) +- [`3.14.0b2-bookworm`, `3.14-rc-bookworm`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/bookworm/Dockerfile) + +- [`3.14.0b2-slim-bookworm`, `3.14-rc-slim-bookworm`, `3.14.0b2-slim`, `3.14-rc-slim`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/slim-bookworm/Dockerfile) + +- [`3.14.0b2-bullseye`, `3.14-rc-bullseye`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/bullseye/Dockerfile) + +- [`3.14.0b2-slim-bullseye`, `3.14-rc-slim-bullseye`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/slim-bullseye/Dockerfile) + +- [`3.14.0b2-alpine3.22`, `3.14-rc-alpine3.22`, `3.14.0b2-alpine`, `3.14-rc-alpine`](https://github.com/docker-library/python/blob/7a46d5a133e8954b1291a04b1832dab334b2414c/3.14-rc/alpine3.22/Dockerfile) + +- [`3.14.0b2-alpine3.21`, `3.14-rc-alpine3.21`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/alpine3.21/Dockerfile) + +- [`3.14.0b2-windowsservercore-ltsc2025`, `3.14-rc-windowsservercore-ltsc2025`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`3.14.0b2-windowsservercore-ltsc2022`, `3.14-rc-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`3.13.5-bookworm`, `3.13-bookworm`, `3-bookworm`, `bookworm`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/bookworm/Dockerfile) + +- [`3.13.5-slim-bookworm`, `3.13-slim-bookworm`, `3-slim-bookworm`, `slim-bookworm`, `3.13.5-slim`, `3.13-slim`, `3-slim`, `slim`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/slim-bookworm/Dockerfile) + +- [`3.13.5-bullseye`, `3.13-bullseye`, `3-bullseye`, `bullseye`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/bullseye/Dockerfile) + +- [`3.13.5-slim-bullseye`, `3.13-slim-bullseye`, `3-slim-bullseye`, `slim-bullseye`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/slim-bullseye/Dockerfile) + +- [`3.13.5-alpine3.22`, `3.13-alpine3.22`, `3-alpine3.22`, `alpine3.22`, `3.13.5-alpine`, `3.13-alpine`, `3-alpine`, `alpine`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/alpine3.22/Dockerfile) + +- [`3.13.5-alpine3.21`, `3.13-alpine3.21`, `3-alpine3.21`, `alpine3.21`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/alpine3.21/Dockerfile) + +- [`3.13.5-windowsservercore-ltsc2025`, `3.13-windowsservercore-ltsc2025`, `3-windowsservercore-ltsc2025`, `windowsservercore-ltsc2025`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/windows/windowsservercore-ltsc2025/Dockerfile) + +- [`3.13.5-windowsservercore-ltsc2022`, `3.13-windowsservercore-ltsc2022`, `3-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/windows/windowsservercore-ltsc2022/Dockerfile) + +- [`3.12.11-bookworm`, `3.12-bookworm`](https://github.com/docker-library/python/blob/a25c9ad64fe168fb619fea7247b17189d441b988/3.12/bookworm/Dockerfile) + +- [`3.12.11-slim-bookworm`, `3.12-slim-bookworm`, `3.12.11-slim`, `3.12-slim`](https://github.com/docker-library/python/blob/a25c9ad64fe168fb619fea7247b17189d441b988/3.12/slim-bookworm/Dockerfile) + +- [`3.12.11-bullseye`, `3.12-bullseye`](https://github.com/docker-library/python/blob/a25c9ad64fe168fb619fea7247b17189d441b988/3.12/bullseye/Dockerfile) + +- [`3.12.11-slim-bullseye`, `3.12-slim-bullseye`](https://github.com/docker-library/python/blob/a25c9ad64fe168fb619fea7247b17189d441b988/3.12/slim-bullseye/Dockerfile) + +- [`3.12.11-alpine3.22`, `3.12-alpine3.22`, `3.12.11-alpine`, `3.12-alpine`](https://github.com/docker-library/python/blob/a25c9ad64fe168fb619fea7247b17189d441b988/3.12/alpine3.22/Dockerfile) + +- [`3.12.11-alpine3.21`, `3.12-alpine3.21`](https://github.com/docker-library/python/blob/a25c9ad64fe168fb619fea7247b17189d441b988/3.12/alpine3.21/Dockerfile) + +- [`3.11.13-bookworm`, `3.11-bookworm`](https://github.com/docker-library/python/blob/14b61451ec7c172cf1d43d8e7859335459fcd344/3.11/bookworm/Dockerfile) + +- [`3.11.13-slim-bookworm`, `3.11-slim-bookworm`, `3.11.13-slim`, `3.11-slim`](https://github.com/docker-library/python/blob/14b61451ec7c172cf1d43d8e7859335459fcd344/3.11/slim-bookworm/Dockerfile) + +- [`3.11.13-bullseye`, `3.11-bullseye`](https://github.com/docker-library/python/blob/14b61451ec7c172cf1d43d8e7859335459fcd344/3.11/bullseye/Dockerfile) + +- [`3.11.13-slim-bullseye`, `3.11-slim-bullseye`](https://github.com/docker-library/python/blob/14b61451ec7c172cf1d43d8e7859335459fcd344/3.11/slim-bullseye/Dockerfile) + +- [`3.11.13-alpine3.22`, `3.11-alpine3.22`, `3.11.13-alpine`, `3.11-alpine`](https://github.com/docker-library/python/blob/14b61451ec7c172cf1d43d8e7859335459fcd344/3.11/alpine3.22/Dockerfile) + +- [`3.11.13-alpine3.21`, `3.11-alpine3.21`](https://github.com/docker-library/python/blob/14b61451ec7c172cf1d43d8e7859335459fcd344/3.11/alpine3.21/Dockerfile) + +- [`3.10.18-bookworm`, `3.10-bookworm`](https://github.com/docker-library/python/blob/cfb3eae801211d2ada389efa034d248147fd8775/3.10/bookworm/Dockerfile) + +- [`3.10.18-slim-bookworm`, `3.10-slim-bookworm`, `3.10.18-slim`, `3.10-slim`](https://github.com/docker-library/python/blob/cfb3eae801211d2ada389efa034d248147fd8775/3.10/slim-bookworm/Dockerfile) + +- [`3.10.18-bullseye`, `3.10-bullseye`](https://github.com/docker-library/python/blob/cfb3eae801211d2ada389efa034d248147fd8775/3.10/bullseye/Dockerfile) + +- [`3.10.18-slim-bullseye`, `3.10-slim-bullseye`](https://github.com/docker-library/python/blob/cfb3eae801211d2ada389efa034d248147fd8775/3.10/slim-bullseye/Dockerfile) + +- [`3.10.18-alpine3.22`, `3.10-alpine3.22`, `3.10.18-alpine`, `3.10-alpine`](https://github.com/docker-library/python/blob/cfb3eae801211d2ada389efa034d248147fd8775/3.10/alpine3.22/Dockerfile) + +- [`3.10.18-alpine3.21`, `3.10-alpine3.21`](https://github.com/docker-library/python/blob/cfb3eae801211d2ada389efa034d248147fd8775/3.10/alpine3.21/Dockerfile) + +- [`3.9.23-bookworm`, `3.9-bookworm`](https://github.com/docker-library/python/blob/059df87446003f462a05aed0cff9b884da0b6874/3.9/bookworm/Dockerfile) + +- [`3.9.23-slim-bookworm`, `3.9-slim-bookworm`, `3.9.23-slim`, `3.9-slim`](https://github.com/docker-library/python/blob/059df87446003f462a05aed0cff9b884da0b6874/3.9/slim-bookworm/Dockerfile) + +- [`3.9.23-bullseye`, `3.9-bullseye`](https://github.com/docker-library/python/blob/059df87446003f462a05aed0cff9b884da0b6874/3.9/bullseye/Dockerfile) + +- [`3.9.23-slim-bullseye`, `3.9-slim-bullseye`](https://github.com/docker-library/python/blob/059df87446003f462a05aed0cff9b884da0b6874/3.9/slim-bullseye/Dockerfile) + +- [`3.9.23-alpine3.22`, `3.9-alpine3.22`, `3.9.23-alpine`, `3.9-alpine`](https://github.com/docker-library/python/blob/059df87446003f462a05aed0cff9b884da0b6874/3.9/alpine3.22/Dockerfile) + +- [`3.9.23-alpine3.21`, `3.9-alpine3.21`](https://github.com/docker-library/python/blob/059df87446003f462a05aed0cff9b884da0b6874/3.9/alpine3.21/Dockerfile) ## Shared Tags -- `3.13.0a1`, `3.13-rc`: - - [`3.13.0a1-bookworm`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/bookworm/Dockerfile) - - [`3.13.0a1-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.13.0a1-windowsservercore-1809`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/windows/windowsservercore-1809/Dockerfile) -- `3.13.0a1-windowsservercore`, `3.13-rc-windowsservercore`: - - [`3.13.0a1-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.13.0a1-windowsservercore-1809`](https://github.com/docker-library/python/blob/f8552b2c305d0c4c27b5eb6a5120b059fdcf9a70/3.13-rc/windows/windowsservercore-1809/Dockerfile) -- `3.12.0`, `3.12`, `3`, `latest`: - - [`3.12.0-bookworm`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/bookworm/Dockerfile) - - [`3.12.0-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.12.0-windowsservercore-1809`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/windows/windowsservercore-1809/Dockerfile) -- `3.12.0-windowsservercore`, `3.12-windowsservercore`, `3-windowsservercore`, `windowsservercore`: - - [`3.12.0-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.12.0-windowsservercore-1809`](https://github.com/docker-library/python/blob/402b993af9ca7a5ee22d8ecccaa6197bfb957bc5/3.12/windows/windowsservercore-1809/Dockerfile) -- `3.11.6`, `3.11`: - - [`3.11.6-bookworm`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/bookworm/Dockerfile) - - [`3.11.6-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.11.6-windowsservercore-1809`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/windows/windowsservercore-1809/Dockerfile) -- `3.11.6-windowsservercore`, `3.11-windowsservercore`: - - [`3.11.6-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/windows/windowsservercore-ltsc2022/Dockerfile) - - [`3.11.6-windowsservercore-1809`](https://github.com/docker-library/python/blob/35d09c044857f7aef2bf24791027f3e3fe2c34dd/3.11/windows/windowsservercore-1809/Dockerfile) -- `3.10.13`, `3.10`: - - [`3.10.13-bookworm`](https://github.com/docker-library/python/blob/b34fc81375758e84dec797e9210a079b4889352e/3.10/bookworm/Dockerfile) -- `3.9.18`, `3.9`: - - [`3.9.18-bookworm`](https://github.com/docker-library/python/blob/3c7651b89037c24ea1c179c4584a1326a990f687/3.9/bookworm/Dockerfile) -- `3.8.18`, `3.8`: - - [`3.8.18-bookworm`](https://github.com/docker-library/python/blob/bcb484c9ef3b745f9a5b05854a875efc79a7db10/3.8/bookworm/Dockerfile) +- `3.14.0b2`, `3.14-rc`: + + - [`3.14.0b2-bookworm`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/bookworm/Dockerfile) + - [`3.14.0b2-windowsservercore-ltsc2025`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/windows/windowsservercore-ltsc2025/Dockerfile) + - [`3.14.0b2-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- `3.14.0b2-windowsservercore`, `3.14-rc-windowsservercore`: + + - [`3.14.0b2-windowsservercore-ltsc2025`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/windows/windowsservercore-ltsc2025/Dockerfile) + - [`3.14.0b2-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/00b6ec85003098bfd36fadf092eb4d14c496b942/3.14-rc/windows/windowsservercore-ltsc2022/Dockerfile) + +- `3.13.5`, `3.13`, `3`, `latest`: + + - [`3.13.5-bookworm`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/bookworm/Dockerfile) + - [`3.13.5-windowsservercore-ltsc2025`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/windows/windowsservercore-ltsc2025/Dockerfile) + - [`3.13.5-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/windows/windowsservercore-ltsc2022/Dockerfile) + +- `3.13.5-windowsservercore`, `3.13-windowsservercore`, `3-windowsservercore`, `windowsservercore`: + + - [`3.13.5-windowsservercore-ltsc2025`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/windows/windowsservercore-ltsc2025/Dockerfile) + - [`3.13.5-windowsservercore-ltsc2022`](https://github.com/docker-library/python/blob/3fae0a14ac171f46e47d7ce41567e40524af5bcc/3.13/windows/windowsservercore-ltsc2022/Dockerfile) + +- `3.12.11`, `3.12`: + + - [`3.12.11-bookworm`](https://github.com/docker-library/python/blob/a25c9ad64fe168fb619fea7247b17189d441b988/3.12/bookworm/Dockerfile) + +- `3.11.13`, `3.11`: + + - [`3.11.13-bookworm`](https://github.com/docker-library/python/blob/14b61451ec7c172cf1d43d8e7859335459fcd344/3.11/bookworm/Dockerfile) + +- `3.10.18`, `3.10`: + + - [`3.10.18-bookworm`](https://github.com/docker-library/python/blob/cfb3eae801211d2ada389efa034d248147fd8775/3.10/bookworm/Dockerfile) + +- `3.9.23`, `3.9`: + + - [`3.9.23-bookworm`](https://github.com/docker-library/python/blob/059df87446003f462a05aed0cff9b884da0b6874/3.9/bookworm/Dockerfile) # Quick reference (cont.) @@ -107,7 +154,7 @@ WARNING: [https://github.com/docker-library/python/issues](https://github.com/docker-library/python/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/python/), [`arm32v5`](https://hub.docker.com/r/arm32v5/python/), [`arm32v6`](https://hub.docker.com/r/arm32v6/python/), [`arm32v7`](https://hub.docker.com/r/arm32v7/python/), [`arm64v8`](https://hub.docker.com/r/arm64v8/python/), [`i386`](https://hub.docker.com/r/i386/python/), [`mips64le`](https://hub.docker.com/r/mips64le/python/), [`ppc64le`](https://hub.docker.com/r/ppc64le/python/), [`s390x`](https://hub.docker.com/r/s390x/python/), [`windows-amd64`](https://hub.docker.com/r/winamd64/python/) + [`amd64`](https://hub.docker.com/r/amd64/python/), [`arm32v5`](https://hub.docker.com/r/arm32v5/python/), [`arm32v6`](https://hub.docker.com/r/arm32v6/python/), [`arm32v7`](https://hub.docker.com/r/arm32v7/python/), [`arm64v8`](https://hub.docker.com/r/arm64v8/python/), [`i386`](https://hub.docker.com/r/i386/python/), [`mips64le`](https://hub.docker.com/r/mips64le/python/), [`ppc64le`](https://hub.docker.com/r/ppc64le/python/), [`riscv64`](https://hub.docker.com/r/riscv64/python/), [`s390x`](https://hub.docker.com/r/s390x/python/), [`windows-amd64`](https://hub.docker.com/r/winamd64/python/) - **Published image artifact details**: [repo-info repo's `repos/python/` directory](https://github.com/docker-library/repo-info/blob/master/repos/python) ([history](https://github.com/docker-library/repo-info/commits/master/repos/python)) @@ -199,7 +246,12 @@ This tag is based off of [`buildpack-deps`](https://hub.docker.com/_/buildpack-d ## `python:-slim` -This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run `python`. Unless you are working in an environment where *only* the `python` image will be deployed and you have space constraints, we highly recommend using the default image of this repository. +This image does not contain the common Debian packages contained in the default tag and only contains the minimal Debian packages needed to run `python`. Unless you are working in an environment where *only* the `python` image will be deployed and you have space constraints, we highly recommend using the default image of this repository. + +When using this image `pip install` will work if a suitable built distribution is available for the Python distribution package being installed. `pip install` may fail when installing a Python distribution package from a source distribution. This image does not contain the Debian packages required to compile extension modules written in other languages. Possible solutions if a `pip install` fails include: + +- Use this image and install any required Debian packages before running `pip install`. +- Use the default image of this repository. The default image contains the most commonly required Debian packages. The majority of arbitrary `pip install`s should be successful without additional header/development Debian packages. ## `python:-alpine` diff --git a/python/metadata.json b/python/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/python/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/python/variant-slim.md b/python/variant-slim.md new file mode 100644 index 000000000000..f5a64e018e64 --- /dev/null +++ b/python/variant-slim.md @@ -0,0 +1,8 @@ +## `%%IMAGE%%:-slim` + +This image does not contain the common Debian packages contained in the default tag and only contains the minimal Debian packages needed to run `%%IMAGE%%`. Unless you are working in an environment where *only* the `%%IMAGE%%` image will be deployed and you have space constraints, we highly recommend using the default image of this repository. + +When using this image `pip install` will work if a suitable built distribution is available for the Python distribution package being installed. `pip install` may fail when installing a Python distribution package from a source distribution. This image does not contain the Debian packages required to compile extension modules written in other languages. Possible solutions if a `pip install` fails include: + +- Use this image and install any required Debian packages before running `pip install`. +- Use the default image of this repository. The default image contains the most commonly required Debian packages. The majority of arbitrary `pip install`s should be successful without additional header/development Debian packages. diff --git a/r-base/README.md b/r-base/README.md index 0e4ff0d8ae9a..f6a6947c1247 100644 --- a/r-base/README.md +++ b/r-base/README.md @@ -24,7 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`4.3.2`, `latest`](https://github.com/rocker-org/rocker/blob/fc5974d0cd04e4e281323a52251d8976239ea071/r-base/4.3.2/Dockerfile) +- [`4.5.1`, `latest`](https://github.com/rocker-org/rocker/blob/6971f6286e907991a3b78e9d261ede20f9c31f49/r-base/4.5.1/Dockerfile) # Quick reference (cont.) diff --git a/r-base/metadata.json b/r-base/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/r-base/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/rabbitmq/README.md b/rabbitmq/README.md index 7c41ddffd4fc..b7fd5cb47f73 100644 --- a/rabbitmq/README.md +++ b/rabbitmq/README.md @@ -24,26 +24,29 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.13.0-rc.2`, `3.13-rc`](https://github.com/docker-library/rabbitmq/blob/4fcdb55f5e7b8953fa265ade0452a2313129926e/3.13-rc/ubuntu/Dockerfile) -- [`3.13.0-rc.2-management`, `3.13-rc-management`](https://github.com/docker-library/rabbitmq/blob/80011d74327aea3ddd460b189c6533c1f177f48f/3.13-rc/ubuntu/management/Dockerfile) -- [`3.13.0-rc.2-alpine`, `3.13-rc-alpine`](https://github.com/docker-library/rabbitmq/blob/4fcdb55f5e7b8953fa265ade0452a2313129926e/3.13-rc/alpine/Dockerfile) -- [`3.13.0-rc.2-management-alpine`, `3.13-rc-management-alpine`](https://github.com/docker-library/rabbitmq/blob/80011d74327aea3ddd460b189c6533c1f177f48f/3.13-rc/alpine/management/Dockerfile) -- [`3.12.8`, `3.12`, `3`, `latest`](https://github.com/docker-library/rabbitmq/blob/6332156bc7d4eb32c0d33dd30fe0412c91d106f6/3.12/ubuntu/Dockerfile) -- [`3.12.8-management`, `3.12-management`, `3-management`, `management`](https://github.com/docker-library/rabbitmq/blob/c30652127ae871535b7ec8ecda8046948a52ab79/3.12/ubuntu/management/Dockerfile) -- [`3.12.8-alpine`, `3.12-alpine`, `3-alpine`, `alpine`](https://github.com/docker-library/rabbitmq/blob/6332156bc7d4eb32c0d33dd30fe0412c91d106f6/3.12/alpine/Dockerfile) -- [`3.12.8-management-alpine`, `3.12-management-alpine`, `3-management-alpine`, `management-alpine`](https://github.com/docker-library/rabbitmq/blob/c30652127ae871535b7ec8ecda8046948a52ab79/3.12/alpine/management/Dockerfile) -- [`3.11.25`, `3.11`](https://github.com/docker-library/rabbitmq/blob/4c96ce69ede25b6cd0e0f04e9155109f44710995/3.11/ubuntu/Dockerfile) -- [`3.11.25-management`, `3.11-management`](https://github.com/docker-library/rabbitmq/blob/b41c10aaddc91da62f96994ab62e9d1ea590c455/3.11/ubuntu/management/Dockerfile) -- [`3.11.25-alpine`, `3.11-alpine`](https://github.com/docker-library/rabbitmq/blob/4c96ce69ede25b6cd0e0f04e9155109f44710995/3.11/alpine/Dockerfile) -- [`3.11.25-management-alpine`, `3.11-management-alpine`](https://github.com/docker-library/rabbitmq/blob/b41c10aaddc91da62f96994ab62e9d1ea590c455/3.11/alpine/management/Dockerfile) -- [`3.10.25`, `3.10`](https://github.com/docker-library/rabbitmq/blob/0e547c0d4ef0a09238c1b0f514835f3733f69148/3.10/ubuntu/Dockerfile) -- [`3.10.25-management`, `3.10-management`](https://github.com/docker-library/rabbitmq/blob/b41c10aaddc91da62f96994ab62e9d1ea590c455/3.10/ubuntu/management/Dockerfile) -- [`3.10.25-alpine`, `3.10-alpine`](https://github.com/docker-library/rabbitmq/blob/0e547c0d4ef0a09238c1b0f514835f3733f69148/3.10/alpine/Dockerfile) -- [`3.10.25-management-alpine`, `3.10-management-alpine`](https://github.com/docker-library/rabbitmq/blob/b41c10aaddc91da62f96994ab62e9d1ea590c455/3.10/alpine/management/Dockerfile) -- [`3.9.29`, `3.9`](https://github.com/docker-library/rabbitmq/blob/4ef39c16217ca65831d0a997f60e54c916244a3c/3.9/ubuntu/Dockerfile) -- [`3.9.29-management`, `3.9-management`](https://github.com/docker-library/rabbitmq/blob/b41c10aaddc91da62f96994ab62e9d1ea590c455/3.9/ubuntu/management/Dockerfile) -- [`3.9.29-alpine`, `3.9-alpine`](https://github.com/docker-library/rabbitmq/blob/4ef39c16217ca65831d0a997f60e54c916244a3c/3.9/alpine/Dockerfile) -- [`3.9.29-management-alpine`, `3.9-management-alpine`](https://github.com/docker-library/rabbitmq/blob/b41c10aaddc91da62f96994ab62e9d1ea590c455/3.9/alpine/management/Dockerfile) +- [`4.1.1`, `4.1`, `4`, `latest`](https://github.com/docker-library/rabbitmq/blob/7e462c35dba545cf20d78a0ac3d18ba27c2e847e/4.1/ubuntu/Dockerfile) + +- [`4.1.1-management`, `4.1-management`, `4-management`, `management`](https://github.com/docker-library/rabbitmq/blob/01055a3ed6f0a7a40d4ff1d17d3f0758039e431f/4.1/ubuntu/management/Dockerfile) + +- [`4.1.1-alpine`, `4.1-alpine`, `4-alpine`, `alpine`](https://github.com/docker-library/rabbitmq/blob/7e462c35dba545cf20d78a0ac3d18ba27c2e847e/4.1/alpine/Dockerfile) + +- [`4.1.1-management-alpine`, `4.1-management-alpine`, `4-management-alpine`, `management-alpine`](https://github.com/docker-library/rabbitmq/blob/01055a3ed6f0a7a40d4ff1d17d3f0758039e431f/4.1/alpine/management/Dockerfile) + +- [`4.0.9`, `4.0`](https://github.com/docker-library/rabbitmq/blob/9fe5ffd717216db809fe0207c0b7266d231fa3a0/4.0/ubuntu/Dockerfile) + +- [`4.0.9-management`, `4.0-management`](https://github.com/docker-library/rabbitmq/blob/36e4d246e934a96b1c3a920e398f96434f3fc34c/4.0/ubuntu/management/Dockerfile) + +- [`4.0.9-alpine`, `4.0-alpine`](https://github.com/docker-library/rabbitmq/blob/9fe5ffd717216db809fe0207c0b7266d231fa3a0/4.0/alpine/Dockerfile) + +- [`4.0.9-management-alpine`, `4.0-management-alpine`](https://github.com/docker-library/rabbitmq/blob/36e4d246e934a96b1c3a920e398f96434f3fc34c/4.0/alpine/management/Dockerfile) + +- [`3.13.7`, `3.13`, `3`](https://github.com/docker-library/rabbitmq/blob/63c027c607b260ba94e9ada33e5c51bb4a70f6a3/3.13/ubuntu/Dockerfile) + +- [`3.13.7-management`, `3.13-management`, `3-management`](https://github.com/docker-library/rabbitmq/blob/36e4d246e934a96b1c3a920e398f96434f3fc34c/3.13/ubuntu/management/Dockerfile) + +- [`3.13.7-alpine`, `3.13-alpine`, `3-alpine`](https://github.com/docker-library/rabbitmq/blob/63c027c607b260ba94e9ada33e5c51bb4a70f6a3/3.13/alpine/Dockerfile) + +- [`3.13.7-management-alpine`, `3.13-management-alpine`, `3-management-alpine`](https://github.com/docker-library/rabbitmq/blob/36e4d246e934a96b1c3a920e398f96434f3fc34c/3.13/alpine/management/Dockerfile) # Quick reference (cont.) @@ -51,7 +54,7 @@ WARNING: [https://github.com/docker-library/rabbitmq/issues](https://github.com/docker-library/rabbitmq/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/rabbitmq/), [`arm32v6`](https://hub.docker.com/r/arm32v6/rabbitmq/), [`arm32v7`](https://hub.docker.com/r/arm32v7/rabbitmq/), [`arm64v8`](https://hub.docker.com/r/arm64v8/rabbitmq/), [`i386`](https://hub.docker.com/r/i386/rabbitmq/), [`ppc64le`](https://hub.docker.com/r/ppc64le/rabbitmq/), [`s390x`](https://hub.docker.com/r/s390x/rabbitmq/) + [`amd64`](https://hub.docker.com/r/amd64/rabbitmq/), [`arm32v6`](https://hub.docker.com/r/arm32v6/rabbitmq/), [`arm32v7`](https://hub.docker.com/r/arm32v7/rabbitmq/), [`arm64v8`](https://hub.docker.com/r/arm64v8/rabbitmq/), [`i386`](https://hub.docker.com/r/i386/rabbitmq/), [`ppc64le`](https://hub.docker.com/r/ppc64le/rabbitmq/), [`riscv64`](https://hub.docker.com/r/riscv64/rabbitmq/), [`s390x`](https://hub.docker.com/r/s390x/rabbitmq/) - **Published image artifact details**: [repo-info repo's `repos/rabbitmq/` directory](https://github.com/docker-library/repo-info/blob/master/repos/rabbitmq) ([history](https://github.com/docker-library/repo-info/commits/master/repos/rabbitmq)) @@ -154,7 +157,7 @@ For example, you can provide the cookie via a file (such as with [Docker Secrets docker service create ... --secret source=my-erlang-cookie,target=/var/lib/rabbitmq/.erlang.cookie ... rabbitmq ``` -(Note that it will likely also be necessary to specify `uid=XXX,gid=XXX,mode=0600` in order for Erlang in the container to be able to read the cookie file properly. See [Docker's `--secret` documentation for more details](https://docs.docker.com/engine/reference/commandline/service_create/#create-a-service-with-secrets).) +(Note that it will likely also be necessary to specify `uid=XXX,gid=XXX,mode=0600` in order for Erlang in the container to be able to read the cookie file properly. See [Docker's `--secret` documentation for more details](https://docs.docker.com/reference/cli/docker/service/create/#secret).) ### Management Plugin diff --git a/rabbitmq/content.md b/rabbitmq/content.md index 268b74529d12..c95e8217849a 100644 --- a/rabbitmq/content.md +++ b/rabbitmq/content.md @@ -88,7 +88,7 @@ For example, you can provide the cookie via a file (such as with [Docker Secrets docker service create ... --secret source=my-erlang-cookie,target=/var/lib/rabbitmq/.erlang.cookie ... %%IMAGE%% ``` -(Note that it will likely also be necessary to specify `uid=XXX,gid=XXX,mode=0600` in order for Erlang in the container to be able to read the cookie file properly. See [Docker's `--secret` documentation for more details](https://docs.docker.com/engine/reference/commandline/service_create/#create-a-service-with-secrets).) +(Note that it will likely also be necessary to specify `uid=XXX,gid=XXX,mode=0600` in order for Erlang in the container to be able to read the cookie file properly. See [Docker's `--secret` documentation for more details](https://docs.docker.com/reference/cli/docker/service/create/#secret).) ### Management Plugin diff --git a/rabbitmq/metadata.json b/rabbitmq/metadata.json new file mode 100644 index 000000000000..66ae22756c7e --- /dev/null +++ b/rabbitmq/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "message-queues" + ] + } +} diff --git a/rakudo-star/README.md b/rakudo-star/README.md index a3c7848a36dd..174f90e08544 100644 --- a/rakudo-star/README.md +++ b/rakudo-star/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`latest`, `2023.08`](https://github.com/Raku/docker/blob/9b9e5827fb816027ae946c1d0b6ccdc9e0ee4501/2023.08/bookworm/Dockerfile) -- [`alpine`, `2023.08-alpine`](https://github.com/Raku/docker/blob/9b9e5827fb816027ae946c1d0b6ccdc9e0ee4501/2023.08/alpine3.18/Dockerfile) +- [`latest`, `2025.04`, `bookworm`](https://github.com/rakudo/docker/blob/9687c880204b2dad5b7d816f268dc0257c39abc0/2025.04/bookworm/Dockerfile) + +- [`alpine`, `2025.02-alpine`](https://github.com/rakudo/docker/blob/02696336f52874a3440ae2fa8f2cbf2a7c6176dd/2025.02/alpine/Dockerfile) # Quick reference (cont.) @@ -88,6 +89,8 @@ The `rakudo-star` images come in many flavors, each designed for a specific use 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. +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. + ## `rakudo-star:-alpine` 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. diff --git a/rakudo-star/metadata.json b/rakudo-star/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/rakudo-star/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/redis/README-short.txt b/redis/README-short.txt index 8d7defc5af63..0548c88f5e46 100644 --- a/redis/README-short.txt +++ b/redis/README-short.txt @@ -1 +1 @@ -Redis is an open source key-value store that functions as a data structure server. +Redis is the world’s fastest data platform for caching, vector search, and NoSQL databases. diff --git a/redis/README.md b/redis/README.md index 78a31c304b23..6c28fa85b8af 100644 --- a/redis/README.md +++ b/redis/README.md @@ -17,29 +17,36 @@ WARNING: # Quick reference - **Maintained by**: - [the Docker Community](https://github.com/docker-library/redis) + [Redis LTD](https://redis.io/) - **Where to get help**: [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) # Supported tags and respective `Dockerfile` links -- [`7.2.3`, `7.2`, `7`, `latest`, `7.2.3-bookworm`, `7.2-bookworm`, `7-bookworm`, `bookworm`](https://github.com/docker-library/redis/blob/7adae2ef2219d7334dcf8affefd0d098114b5da3/7.2/bookworm/Dockerfile) -- [`7.2.3-alpine3.18`, `7.2-alpine3.18`, `7-alpine3.18`, `alpine3.18`, `7.2.3-alpine`, `7.2-alpine`, `7-alpine`, `alpine`](https://github.com/docker-library/redis/blob/7adae2ef2219d7334dcf8affefd0d098114b5da3/7.2/alpine3.18/Dockerfile) -- [`7.0.14`, `7.0`, `7.0.14-bookworm`, `7.0-bookworm`](https://github.com/docker-library/redis/blob/7adae2ef2219d7334dcf8affefd0d098114b5da3/7.0/bookworm/Dockerfile) -- [`7.0.14-alpine3.18`, `7.0-alpine3.18`, `7.0.14-alpine`, `7.0-alpine`](https://github.com/docker-library/redis/blob/7adae2ef2219d7334dcf8affefd0d098114b5da3/7.0/alpine3.18/Dockerfile) -- [`6.2.14`, `6.2`, `6`, `6.2.14-bookworm`, `6.2-bookworm`, `6-bookworm`](https://github.com/docker-library/redis/blob/7adae2ef2219d7334dcf8affefd0d098114b5da3/6.2/bookworm/Dockerfile) -- [`6.2.14-alpine3.18`, `6.2-alpine3.18`, `6-alpine3.18`, `6.2.14-alpine`, `6.2-alpine`, `6-alpine`](https://github.com/docker-library/redis/blob/7adae2ef2219d7334dcf8affefd0d098114b5da3/6.2/alpine3.18/Dockerfile) -- [`6.0.20`, `6.0`, `6.0.20-bookworm`, `6.0-bookworm`](https://github.com/docker-library/redis/blob/7adae2ef2219d7334dcf8affefd0d098114b5da3/6.0/bookworm/Dockerfile) -- [`6.0.20-alpine3.18`, `6.0-alpine3.18`, `6.0.20-alpine`, `6.0-alpine`](https://github.com/docker-library/redis/blob/7adae2ef2219d7334dcf8affefd0d098114b5da3/6.0/alpine3.18/Dockerfile) +- [`8.0.2`, `8.0`, `8`, `8.0.2-bookworm`, `8.0-bookworm`, `8-bookworm`, `latest`, `bookworm`](https://github.com/redis/docker-library-redis/blob/5151eacdaf46f588f330c2e45fbed7fa0a7c192e/debian/Dockerfile) + +- [`8.0.2-alpine`, `8.0-alpine`, `8-alpine`, `8.0.2-alpine3.21`, `8.0-alpine3.21`, `8-alpine3.21`, `alpine`, `alpine3.21`](https://github.com/redis/docker-library-redis/blob/5151eacdaf46f588f330c2e45fbed7fa0a7c192e/alpine/Dockerfile) + +- [`7.4.4`, `7.4`, `7`, `7.4.4-bookworm`, `7.4-bookworm`, `7-bookworm`](https://github.com/redis/docker-library-redis/blob/7eaf5cd7042aee7a3f9049d91e48c647e2422de5/7.4/debian/Dockerfile) + +- [`7.4.4-alpine`, `7.4-alpine`, `7-alpine`, `7.4.4-alpine3.21`, `7.4-alpine3.21`, `7-alpine3.21`](https://github.com/redis/docker-library-redis/blob/7eaf5cd7042aee7a3f9049d91e48c647e2422de5/7.4/alpine/Dockerfile) + +- [`7.2.9`, `7.2`, `7.2.9-bookworm`, `7.2-bookworm`](https://github.com/redis/docker-library-redis/blob/7eaf5cd7042aee7a3f9049d91e48c647e2422de5/7.2/debian/Dockerfile) + +- [`7.2.9-alpine`, `7.2-alpine`, `7.2.9-alpine3.21`, `7.2-alpine3.21`](https://github.com/redis/docker-library-redis/blob/7eaf5cd7042aee7a3f9049d91e48c647e2422de5/7.2/alpine/Dockerfile) + +- [`6.2.18`, `6.2`, `6`, `6.2.18-bookworm`, `6.2-bookworm`, `6-bookworm`](https://github.com/redis/docker-library-redis/blob/27cd071c3e9d903a19c79577ddb82fb322ef5ed6/6.2/debian/Dockerfile) + +- [`6.2.18-alpine`, `6.2-alpine`, `6-alpine`, `6.2.18-alpine3.21`, `6.2-alpine3.21`, `6-alpine3.21`](https://github.com/redis/docker-library-redis/blob/27cd071c3e9d903a19c79577ddb82fb322ef5ed6/6.2/alpine/Dockerfile) # Quick reference (cont.) - **Where to file issues**: - [https://github.com/docker-library/redis/issues](https://github.com/docker-library/redis/issues?q=) + [https://github.com/redis/docker-library-redis/issues](https://github.com/redis/docker-library-redis/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/redis/), [`arm32v5`](https://hub.docker.com/r/arm32v5/redis/), [`arm32v6`](https://hub.docker.com/r/arm32v6/redis/), [`arm32v7`](https://hub.docker.com/r/arm32v7/redis/), [`arm64v8`](https://hub.docker.com/r/arm64v8/redis/), [`i386`](https://hub.docker.com/r/i386/redis/), [`mips64le`](https://hub.docker.com/r/mips64le/redis/), [`ppc64le`](https://hub.docker.com/r/ppc64le/redis/), [`s390x`](https://hub.docker.com/r/s390x/redis/) + [`amd64`](https://hub.docker.com/r/amd64/redis/), [`arm32v5`](https://hub.docker.com/r/arm32v5/redis/), [`arm32v6`](https://hub.docker.com/r/arm32v6/redis/), [`arm32v7`](https://hub.docker.com/r/arm32v7/redis/), [`arm64v8`](https://hub.docker.com/r/arm64v8/redis/), [`i386`](https://hub.docker.com/r/i386/redis/), [`mips64le`](https://hub.docker.com/r/mips64le/redis/), [`ppc64le`](https://hub.docker.com/r/ppc64le/redis/), [`riscv64`](https://hub.docker.com/r/riscv64/redis/), [`s390x`](https://hub.docker.com/r/s390x/redis/) - **Published image artifact details**: [repo-info repo's `repos/redis/` directory](https://github.com/docker-library/repo-info/blob/master/repos/redis) ([history](https://github.com/docker-library/repo-info/commits/master/repos/redis)) @@ -54,29 +61,35 @@ WARNING: # What is Redis? -Redis is an open-source, networked, in-memory, key-value data store with optional durability. It is written in ANSI C. The development of Redis is sponsored by Redis Labs today; before that, it was sponsored by Pivotal and VMware. According to the monthly ranking by DB-Engines.com, Redis is the most popular key-value store. The name Redis means REmote DIctionary Server. +Redis is the world’s fastest data platform. It provides cloud and on-prem solutions for caching, vector search, and NoSQL databases that seamlessly fit into any tech stack—making it simple for digital customers to build, scale, and deploy the fast apps our world runs on. -> [wikipedia.org/wiki/Redis](https://en.wikipedia.org/wiki/Redis) +> [redis.io](https://redis.io) -![logo](https://raw.githubusercontent.com/docker-library/docs/01c12653951b2fe592c1f93a13b4e289ada0e3a1/redis/logo.png) +![logo](https://raw.githubusercontent.com/docker-library/docs/0e42ee108b46e1ba6333e9eb44201b8f26c4032d/redis/logo.png) # Security For the ease of accessing Redis from other containers via Docker networking, the "Protected mode" is turned off by default. This means that if you expose the port outside of your host (e.g., via `-p` on `docker run`), it will be open without a password to anyone. It is **highly** recommended to set a password (by supplying a config file) if you plan on exposing your Redis instance to the internet. For further information, see the following links about Redis security: -- [Redis documentation on security](https://redis.io/topics/security) -- [Protected mode](https://redis.io/topics/security#protected-mode) +- [Redis documentation on security](https://redis.io/docs/latest/operate/oss_and_stack/management/security/) +- [Protected mode](https://redis.io/docs/latest/operate/oss_and_stack/management/security/#protected-mode) - [A few things about Redis security by antirez](http://antirez.com/news/96) +## Process User and Privileges + +By default, the Redis Docker image drops privileges by switching to the redis user and removing unnecessary capabilities. This step is skipped if Docker is run with the `--user` option or if you set the `SKIP_DROP_PRIVS=1` (since 8.0.2) environment variable. + +Note: Using `SKIP_DROP_PRIVS` is not recommended, as it reduces the container's security. + # How to use this image -## start a redis instance +## Start a redis instance ```console $ docker run --name some-redis -d redis ``` -## start with persistent storage +## Start with persistent storage ```console $ docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning @@ -84,15 +97,29 @@ $ docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warn There are several different persistence strategies to choose from. This one will save a snapshot of the DB every 60 seconds if at least 1 write operation was performed (it will also lead to more logs, so the `loglevel` option may be desirable). If persistence is enabled, data is stored in the `VOLUME /data`, which can be used with `--volumes-from some-volume-container` or `-v /docker/host/dir:/data` (see [docs.docker volumes](https://docs.docker.com/engine/tutorials/dockervolumes/)). -For more about Redis Persistence, see [http://redis.io/topics/persistence](http://redis.io/topics/persistence). +For more about Redis persistence, see [the official Redis documentation](https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/). + +### File and Directory Permissions + +Redis will attempt to correct the ownership and permissions of the data and configuration (since 8.0.2) directories and files if they are not set correctly. This adjustment is only performed in basic, default scenarios to avoid interfering with custom or user-specific configurations. -## connecting via `redis-cli` +You can skip this step by setting the `SKIP_FIX_PERMS=1`(since 8.0.2) environment variable. + +### Manually Setting File and Directory Permissions + +If you prefer to handle file permissions yourself, you can use a `docker run` command to set the correct ownership on mounted volumes. For example: + +```console +$ docker run --rm -v /your/host/path:/data redis chown -R redis:redis /data +``` + +## Connecting via `redis-cli` ```console $ docker run -it --network some-network --rm redis redis-cli -h some-redis ``` -## Additionally, If you want to use your own redis.conf ... +## Additionally, if you want to use your own redis.conf ... You can create your own Dockerfile that adds a redis.conf from the context into /data/, like so. @@ -112,18 +139,6 @@ Where `/myredis/conf/` is a local directory containing your `redis.conf` file. U The mapped directory should be writable, as depending on the configuration and mode of operation, Redis may need to create additional configuration files or rewrite existing ones. -## `32bit` variant - -This variant is *not* a 32bit image (and will not run on 32bit hardware), but includes Redis compiled as a 32bit binary, especially for users who need the decreased memory requirements associated with that. See ["Using 32 bit instances"](http://redis.io/topics/memory-optimization#using-32-bit-instances) in the Redis documentation for more information. - -# Redis Modules - -You can find the list of modules for Redis on [redis.io](https://redis.io/modules) or on [redismodules.com](http://redismodules.com). A few of the standard modules can be found here: - -- [RediSearch](https://hub.docker.com/r/redislabs/redisearch/): Search and Query with Indexing on Redis -- [ReJSON](https://hub.docker.com/r/redislabs/rejson/): Extended JSON processing for Redis -- [ReBloom](https://hub.docker.com/r/redislabs/rebloom/): Bloom Filters data type for membership/existence search on Redis - # Image Variants The `redis` images come in many flavors, each designed for a specific use case. @@ -144,7 +159,9 @@ To minimize image size, it's uncommon for additional related tools (such as `git # License -View [license information](http://redis.io/topics/license) for the software contained in this image. +Starting with Redis 8.0, Redis follows a tri-licensing model with the choice of the [Redis Source Available License v2 - RSALv2](https://redis.io/legal/rsalv2-agreement/), [Server Side Public License v1 - SSPLv1](https://redis.io/legal/server-side-public-license-sspl/), or the [GNU Affero General Public License v3 - AGPLv3](https://opensource.org/license/agpl-v3). Prior versions of Redis (<=7.2.4) are licensed under [3-Clause BSD](https://opensource.org/license/bsd-3-clause)⁠, and Redis 7.4.x-7.8.x are licensed under the dual [RSALv2](https://redis.io/legal/rsalv2-agreement/) or [SSPLv1](https://redis.io/legal/server-side-public-license-sspl/) license. + +Please also view the [Redis License Overview](https://redis.io/legal/licenses/) and the [Redis Trademark Policy](https://redis.io/legal/trademark-policy/). 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). diff --git a/redis/content.md b/redis/content.md index f251509ff5ee..ccd86f1b87a6 100644 --- a/redis/content.md +++ b/redis/content.md @@ -1,8 +1,8 @@ # What is Redis? -Redis is an open-source, networked, in-memory, key-value data store with optional durability. It is written in ANSI C. The development of Redis is sponsored by Redis Labs today; before that, it was sponsored by Pivotal and VMware. According to the monthly ranking by DB-Engines.com, Redis is the most popular key-value store. The name Redis means REmote DIctionary Server. +Redis is the world’s fastest data platform. It provides cloud and on-prem solutions for caching, vector search, and NoSQL databases that seamlessly fit into any tech stack—making it simple for digital customers to build, scale, and deploy the fast apps our world runs on. -> [wikipedia.org/wiki/Redis](https://en.wikipedia.org/wiki/Redis) +> [redis.io](https://redis.io) %%LOGO%% @@ -10,19 +10,25 @@ Redis is an open-source, networked, in-memory, key-value data store with optiona For the ease of accessing Redis from other containers via Docker networking, the "Protected mode" is turned off by default. This means that if you expose the port outside of your host (e.g., via `-p` on `docker run`), it will be open without a password to anyone. It is **highly** recommended to set a password (by supplying a config file) if you plan on exposing your Redis instance to the internet. For further information, see the following links about Redis security: -- [Redis documentation on security](https://redis.io/topics/security) -- [Protected mode](https://redis.io/topics/security#protected-mode) +- [Redis documentation on security](https://redis.io/docs/latest/operate/oss_and_stack/management/security/) +- [Protected mode](https://redis.io/docs/latest/operate/oss_and_stack/management/security/#protected-mode) - [A few things about Redis security by antirez](http://antirez.com/news/96) +## Process User and Privileges + +By default, the Redis Docker image drops privileges by switching to the redis user and removing unnecessary capabilities. This step is skipped if Docker is run with the `--user` option or if you set the `SKIP_DROP_PRIVS=1` (since 8.0.2) environment variable. + +Note: Using `SKIP_DROP_PRIVS` is not recommended, as it reduces the container's security. + # How to use this image -## start a redis instance +## Start a redis instance ```console $ docker run --name some-redis -d %%IMAGE%% ``` -## start with persistent storage +## Start with persistent storage ```console $ docker run --name some-redis -d %%IMAGE%% redis-server --save 60 1 --loglevel warning @@ -30,15 +36,29 @@ $ docker run --name some-redis -d %%IMAGE%% redis-server --save 60 1 --loglevel There are several different persistence strategies to choose from. This one will save a snapshot of the DB every 60 seconds if at least 1 write operation was performed (it will also lead to more logs, so the `loglevel` option may be desirable). If persistence is enabled, data is stored in the `VOLUME /data`, which can be used with `--volumes-from some-volume-container` or `-v /docker/host/dir:/data` (see [docs.docker volumes](https://docs.docker.com/engine/tutorials/dockervolumes/)). -For more about Redis Persistence, see [http://redis.io/topics/persistence](http://redis.io/topics/persistence). +For more about Redis persistence, see [the official Redis documentation](https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/). + +### File and Directory Permissions + +Redis will attempt to correct the ownership and permissions of the data and configuration (since 8.0.2) directories and files if they are not set correctly. This adjustment is only performed in basic, default scenarios to avoid interfering with custom or user-specific configurations. + +You can skip this step by setting the `SKIP_FIX_PERMS=1`(since 8.0.2) environment variable. + +### Manually Setting File and Directory Permissions + +If you prefer to handle file permissions yourself, you can use a `docker run` command to set the correct ownership on mounted volumes. For example: -## connecting via `redis-cli` +```console +$ docker run --rm -v /your/host/path:/data %%IMAGE%% chown -R redis:redis /data +``` + +## Connecting via `redis-cli` ```console $ docker run -it --network some-network --rm %%IMAGE%% redis-cli -h some-redis ``` -## Additionally, If you want to use your own redis.conf ... +## Additionally, if you want to use your own redis.conf ... You can create your own Dockerfile that adds a redis.conf from the context into /data/, like so. @@ -57,15 +77,3 @@ $ docker run -v /myredis/conf:/usr/local/etc/redis --name myredis %%IMAGE%% redi Where `/myredis/conf/` is a local directory containing your `redis.conf` file. Using this method means that there is no need for you to have a Dockerfile for your redis container. The mapped directory should be writable, as depending on the configuration and mode of operation, Redis may need to create additional configuration files or rewrite existing ones. - -## `32bit` variant - -This variant is *not* a 32bit image (and will not run on 32bit hardware), but includes Redis compiled as a 32bit binary, especially for users who need the decreased memory requirements associated with that. See ["Using 32 bit instances"](http://redis.io/topics/memory-optimization#using-32-bit-instances) in the Redis documentation for more information. - -# Redis Modules - -You can find the list of modules for Redis on [redis.io](https://redis.io/modules) or on [redismodules.com](http://redismodules.com). A few of the standard modules can be found here: - -- [RediSearch](https://hub.docker.com/r/redislabs/redisearch/): Search and Query with Indexing on Redis -- [ReJSON](https://hub.docker.com/r/redislabs/rejson/): Extended JSON processing for Redis -- [ReBloom](https://hub.docker.com/r/redislabs/rebloom/): Bloom Filters data type for membership/existence search on Redis diff --git a/redis/github-repo b/redis/github-repo index efe72763d478..4d13a7aeccad 100644 --- a/redis/github-repo +++ b/redis/github-repo @@ -1 +1 @@ -https://github.com/docker-library/redis +https://github.com/redis/docker-library-redis diff --git a/redis/license.md b/redis/license.md index 74cc4cc6ce3e..1343cbf6abc7 100644 --- a/redis/license.md +++ b/redis/license.md @@ -1 +1,3 @@ -View [license information](http://redis.io/topics/license) for the software contained in this image. +Starting with Redis 8.0, Redis follows a tri-licensing model with the choice of the [Redis Source Available License v2 - RSALv2](https://redis.io/legal/rsalv2-agreement/), [Server Side Public License v1 - SSPLv1](https://redis.io/legal/server-side-public-license-sspl/), or the [GNU Affero General Public License v3 - AGPLv3](https://opensource.org/license/agpl-v3). Prior versions of Redis (<=7.2.4) are licensed under [3-Clause BSD](https://opensource.org/license/bsd-3-clause)⁠, and Redis 7.4.x-7.8.x are licensed under the dual [RSALv2](https://redis.io/legal/rsalv2-agreement/) or [SSPLv1](https://redis.io/legal/server-side-public-license-sspl/) license. + +Please also view the [Redis License Overview](https://redis.io/legal/licenses/) and the [Redis Trademark Policy](https://redis.io/legal/trademark-policy/). diff --git a/redis/logo.png b/redis/logo.png index 36e37ca033ce..67e296119578 100644 Binary files a/redis/logo.png and b/redis/logo.png differ diff --git a/redis/maintainer.md b/redis/maintainer.md deleted file mode 120000 index e727ff0696ae..000000000000 --- a/redis/maintainer.md +++ /dev/null @@ -1 +0,0 @@ -../.common-templates/maintainer-community.md \ No newline at end of file diff --git a/redis/maintainer.md b/redis/maintainer.md new file mode 100644 index 000000000000..d1e3d7a407c8 --- /dev/null +++ b/redis/maintainer.md @@ -0,0 +1 @@ +[Redis LTD](https://redis.io/) diff --git a/redis/metadata.json b/redis/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/redis/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/redmine/README.md b/redmine/README.md index 79f6c494df3d..38688a252b34 100644 --- a/redmine/README.md +++ b/redmine/README.md @@ -24,8 +24,17 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.0.6`, `5.0`, `5`, `latest`, `5.0.6-bookworm`, `5.0-bookworm`, `5-bookworm`, `bookworm`](https://github.com/docker-library/redmine/blob/329d3b89cc5ef11e7363f3eaff0f046e249aadee/5.0/Dockerfile) -- [`5.0.6-alpine`, `5.0-alpine`, `5-alpine`, `alpine`, `5.0.6-alpine3.18`, `5.0-alpine3.18`, `5-alpine3.18`, `alpine3.18`](https://github.com/docker-library/redmine/blob/329d3b89cc5ef11e7363f3eaff0f046e249aadee/5.0/alpine/Dockerfile) +- [`6.0.5`, `6.0`, `6`, `latest`, `6.0.5-bookworm`, `6.0-bookworm`, `6-bookworm`, `bookworm`](https://github.com/docker-library/redmine/blob/79fdb4829c95432ad05877fea0b27793b35bfd6f/6.0/bookworm/Dockerfile) + +- [`6.0.5-alpine3.22`, `6.0-alpine3.22`, `6-alpine3.22`, `alpine3.22`, `6.0.5-alpine`, `6.0-alpine`, `6-alpine`, `alpine`](https://github.com/docker-library/redmine/blob/1d4803b70876ee3a9a8e9dfb71c0c0293f5621d8/6.0/alpine3.22/Dockerfile) + +- [`6.0.5-alpine3.21`, `6.0-alpine3.21`, `6-alpine3.21`, `alpine3.21`](https://github.com/docker-library/redmine/blob/79fdb4829c95432ad05877fea0b27793b35bfd6f/6.0/alpine3.21/Dockerfile) + +- [`5.1.8`, `5.1`, `5`, `5.1.8-bookworm`, `5.1-bookworm`, `5-bookworm`](https://github.com/docker-library/redmine/blob/a000f11a67e7e7f315398fb83a9262e47998b663/5.1/bookworm/Dockerfile) + +- [`5.1.8-alpine3.22`, `5.1-alpine3.22`, `5-alpine3.22`, `5.1.8-alpine`, `5.1-alpine`, `5-alpine`](https://github.com/docker-library/redmine/blob/1d4803b70876ee3a9a8e9dfb71c0c0293f5621d8/5.1/alpine3.22/Dockerfile) + +- [`5.1.8-alpine3.21`, `5.1-alpine3.21`, `5-alpine3.21`](https://github.com/docker-library/redmine/blob/a000f11a67e7e7f315398fb83a9262e47998b663/5.1/alpine3.21/Dockerfile) # Quick reference (cont.) @@ -33,7 +42,7 @@ WARNING: [https://github.com/docker-library/redmine/issues](https://github.com/docker-library/redmine/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/redmine/), [`arm32v5`](https://hub.docker.com/r/arm32v5/redmine/), [`arm32v6`](https://hub.docker.com/r/arm32v6/redmine/), [`arm32v7`](https://hub.docker.com/r/arm32v7/redmine/), [`arm64v8`](https://hub.docker.com/r/arm64v8/redmine/), [`i386`](https://hub.docker.com/r/i386/redmine/), [`ppc64le`](https://hub.docker.com/r/ppc64le/redmine/), [`s390x`](https://hub.docker.com/r/s390x/redmine/) + [`amd64`](https://hub.docker.com/r/amd64/redmine/), [`arm32v5`](https://hub.docker.com/r/arm32v5/redmine/), [`arm32v6`](https://hub.docker.com/r/arm32v6/redmine/), [`arm32v7`](https://hub.docker.com/r/arm32v7/redmine/), [`arm64v8`](https://hub.docker.com/r/arm64v8/redmine/), [`i386`](https://hub.docker.com/r/i386/redmine/), [`mips64le`](https://hub.docker.com/r/mips64le/redmine/), [`ppc64le`](https://hub.docker.com/r/ppc64le/redmine/), [`riscv64`](https://hub.docker.com/r/riscv64/redmine/), [`s390x`](https://hub.docker.com/r/s390x/redmine/) - **Published image artifact details**: [repo-info repo's `repos/redmine/` directory](https://github.com/docker-library/repo-info/blob/master/repos/redmine) ([history](https://github.com/docker-library/repo-info/commits/master/repos/redmine)) @@ -90,13 +99,11 @@ Running Redmine with a database server is the recommended way. $ docker run -d --name some-redmine --network some-network -e REDMINE_DB_POSTGRES=some-postgres -e REDMINE_DB_USERNAME=redmine -e REDMINE_DB_PASSWORD=secret redmine ``` -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `redmine`: +Example `compose.yaml` for `redmine`: ```yaml -version: '3.1' - services: redmine: @@ -110,20 +117,14 @@ services: REDMINE_SECRET_KEY_BASE: supersecretkey db: - image: mysql:5.7 + image: mysql:8.0 restart: always environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: redmine ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/cd78c2e058c5a648c0ef42590943736612332666/redmine/stack.yml) - -Run `docker stack deploy -c stack.yml redmine` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). - -## Alternative Web Server - -The other tags in this repository, like those with `passenger`, use the same environment and `--links` as the default tags that use Puma (`rails server`) but instead give you the option of a different web and application server. `passenger` uses [Phusion Passenger](https://www.phusionpassenger.com/). [`tini`](https://github.com/krallin/tini) is used for reaping [zombies](https://en.wikipedia.org/wiki/Zombie_process). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Accessing the Application @@ -133,8 +134,8 @@ Currently, the default user and password from upstream is admin/admin ([logging Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `redmine` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your files [by writing the files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your files [by writing the files 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. +- 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 database 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. 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: @@ -191,25 +192,15 @@ This variable allows you to control if `rake redmine:plugins:migrate` is run on `redmine:plugins:migrate` will not run if you start your image with something other than the default `CMD`, like `bash`. See the current `docker-entrypoint.sh` in your image for details. -### `REDMINE_SECRET_KEY_BASE` - -This variable is required when using Docker Swarm replicas to maintain session connections when being loadbalanced between containers. It will create an initial `config/secrets.yml` and set the `secret_key_base` value, which is "used by Rails to encode cookies storing session data thus preventing their tampering. Generating a new secret token invalidates all existing sessions after restart" ([session store](https://www.redmine.org/projects/redmine/wiki/RedmineInstall#Step-5-Session-store-secret-generation)). If you do not set this variable or provide a `secrets.yml` one will be generated using `rake generate_secret_token`. - -## Running as an arbitrary user +### `SECRET_KEY_BASE` -For running Redmine without Phusion Passenger you can simply use the [`--user`](https://docs.docker.com/engine/reference/run/#user) flag to `docker run` and give it a `username:group` or `UID:GID`, the user doesn't need to exist in the container +This is a general Rails environment variable. This variable is useful when using loadbalanced replicas to maintain session connections. It is "used by Rails to encode cookies storing session data thus preventing their tampering. Generating a new secret token invalidates all existing sessions after restart" ([session store](https://www.redmine.org/projects/redmine/wiki/RedmineInstall#Step-5-Session-store-secret-generation)). If you do not set this variable, then the `secret_key_base` value will be generated using `rake generate_secret_token`. -For running the `redmine:passenger` variant as an arbitrary user you will however need the user to exist in `/etc/passwd`. Here are a few examples for doing that: +For backwards compatibility, the deprecated, Docker-specific `REDMINE_SECRET_KEY_BASE` variable will automatically fill the `SECRET_KEY_BASE` environment variable. Users should migrate their deployments to use the `SECRET_KEY_BASE` variable directly. -1. Create the user on your host and mount `/etc/passwd:/etc/passwd:ro` - -2. Create a Dockerfile `FROM redmine:passenger` and include something like [`RUN groupadd -r group && useradd --no-log-init -r -g group user`](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user) +## Running as an arbitrary user - ```dockerfile - FROM redmine:passenger - RUN groupadd -r group && useradd --no-log-init -r -g group user - USER user - ``` +You can use the [`--user`](https://docs.docker.com/engine/reference/run/#user) flag to `docker run` and give it a `username:group` or `UID:GID`, the user doesn't need to exist in the container. ## Docker Secrets diff --git a/redmine/stack.yml b/redmine/compose.yaml similarity index 89% rename from redmine/stack.yml rename to redmine/compose.yaml index 5cfe77710c4e..64ed42bb0603 100644 --- a/redmine/stack.yml +++ b/redmine/compose.yaml @@ -1,5 +1,3 @@ -version: '3.1' - services: redmine: @@ -13,7 +11,7 @@ services: REDMINE_SECRET_KEY_BASE: supersecretkey db: - image: mysql:5.7 + image: mysql:8.0 restart: always environment: MYSQL_ROOT_PASSWORD: example diff --git a/redmine/content.md b/redmine/content.md index feb4bb3f15c5..2d49551e9d5d 100644 --- a/redmine/content.md +++ b/redmine/content.md @@ -42,13 +42,9 @@ Running Redmine with a database server is the recommended way. $ docker run -d --name some-%%REPO%% --network some-network -e REDMINE_DB_POSTGRES=some-postgres -e REDMINE_DB_USERNAME=redmine -e REDMINE_DB_PASSWORD=secret %%IMAGE%% ``` -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). - -## Alternative Web Server - -The other tags in this repository, like those with `passenger`, use the same environment and `--links` as the default tags that use Puma (`rails server`) but instead give you the option of a different web and application server. `passenger` uses [Phusion Passenger](https://www.phusionpassenger.com/). [`tini`](https://github.com/krallin/tini) is used for reaping [zombies](https://en.wikipedia.org/wiki/Zombie_process). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Accessing the Application @@ -58,8 +54,8 @@ Currently, the default user and password from upstream is admin/admin ([logging Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `%%REPO%%` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your files [by writing the files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your files [by writing the files 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. +- 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 database 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. 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: @@ -116,25 +112,15 @@ This variable allows you to control if `rake redmine:plugins:migrate` is run on `redmine:plugins:migrate` will not run if you start your image with something other than the default `CMD`, like `bash`. See the current `docker-entrypoint.sh` in your image for details. -### `REDMINE_SECRET_KEY_BASE` - -This variable is required when using Docker Swarm replicas to maintain session connections when being loadbalanced between containers. It will create an initial `config/secrets.yml` and set the `secret_key_base` value, which is "used by Rails to encode cookies storing session data thus preventing their tampering. Generating a new secret token invalidates all existing sessions after restart" ([session store](https://www.redmine.org/projects/redmine/wiki/RedmineInstall#Step-5-Session-store-secret-generation)). If you do not set this variable or provide a `secrets.yml` one will be generated using `rake generate_secret_token`. - -## Running as an arbitrary user - -For running Redmine without Phusion Passenger you can simply use the [`--user`](https://docs.docker.com/engine/reference/run/#user) flag to `docker run` and give it a `username:group` or `UID:GID`, the user doesn't need to exist in the container +### `SECRET_KEY_BASE` -For running the `redmine:passenger` variant as an arbitrary user you will however need the user to exist in `/etc/passwd`. Here are a few examples for doing that: +This is a general Rails environment variable. This variable is useful when using loadbalanced replicas to maintain session connections. It is "used by Rails to encode cookies storing session data thus preventing their tampering. Generating a new secret token invalidates all existing sessions after restart" ([session store](https://www.redmine.org/projects/redmine/wiki/RedmineInstall#Step-5-Session-store-secret-generation)). If you do not set this variable, then the `secret_key_base` value will be generated using `rake generate_secret_token`. -1. Create the user on your host and mount `/etc/passwd:/etc/passwd:ro` +For backwards compatibility, the deprecated, Docker-specific `REDMINE_SECRET_KEY_BASE` variable will automatically fill the `SECRET_KEY_BASE` environment variable. Users should migrate their deployments to use the `SECRET_KEY_BASE` variable directly. -2. Create a Dockerfile `FROM redmine:passenger` and include something like [`RUN groupadd -r group && useradd --no-log-init -r -g group user`](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user) +## Running as an arbitrary user - ```dockerfile - FROM redmine:passenger - RUN groupadd -r group && useradd --no-log-init -r -g group user - USER user - ``` +You can use the [`--user`](https://docs.docker.com/engine/reference/run/#user) flag to `docker run` and give it a `username:group` or `UID:GID`, the user doesn't need to exist in the container. ## Docker Secrets diff --git a/redmine/metadata.json b/redmine/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/redmine/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/registry/README.md b/registry/README.md index cdd660954e78..85ef0515ec33 100644 --- a/registry/README.md +++ b/registry/README.md @@ -17,24 +17,22 @@ WARNING: # Quick reference - **Maintained by**: - [Docker, Inc.](https://github.com/docker/distribution-library-image) + [the Docker Community](https://github.com/distribution/distribution-library-image) - **Where to get help**: [CNCF community slack](https://slack.cncf.io/), or [Stack Overflow](https://stackoverflow.com/questions/tagged/docker+registry) -- **Need a free, secure hosted registry?** Try [Docker Hub](https://www.docker.com/pricing). - # Supported tags and respective `Dockerfile` links -- [`2.8.3`, `2.8`, `2`, `latest`](https://github.com/docker/distribution-library-image/blob/39dd72feaab7066334829d6945c54bc51a0aee98/Dockerfile) +- [`3.0.0`, `3.0`, `3`, `latest`](https://github.com/distribution/distribution-library-image/blob/f83883590f5afda69afafbc5aaa5fde3686f47cf/Dockerfile) # Quick reference (cont.) - **Where to file issues**: - [https://github.com/docker/distribution-library-image/issues](https://github.com/docker/distribution-library-image/issues?q=) + [https://github.com/distribution/distribution-library-image/issues](https://github.com/distribution/distribution-library-image/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/registry/), [`arm32v6`](https://hub.docker.com/r/arm32v6/registry/), [`arm32v7`](https://hub.docker.com/r/arm32v7/registry/), [`arm64v8`](https://hub.docker.com/r/arm64v8/registry/), [`ppc64le`](https://hub.docker.com/r/ppc64le/registry/), [`s390x`](https://hub.docker.com/r/s390x/registry/) + [`amd64`](https://hub.docker.com/r/amd64/registry/), [`arm32v6`](https://hub.docker.com/r/arm32v6/registry/), [`arm32v7`](https://hub.docker.com/r/arm32v7/registry/), [`arm64v8`](https://hub.docker.com/r/arm64v8/registry/), [`ppc64le`](https://hub.docker.com/r/ppc64le/registry/), [`riscv64`](https://hub.docker.com/r/riscv64/registry/), [`s390x`](https://hub.docker.com/r/s390x/registry/) - **Published image artifact details**: [repo-info repo's `repos/registry/` directory](https://github.com/docker-library/repo-info/blob/master/repos/registry) ([history](https://github.com/docker-library/repo-info/commits/master/repos/registry)) @@ -51,7 +49,7 @@ WARNING: ![logo](https://raw.githubusercontent.com/docker-library/docs/b09c592af0d6061629e02e4f674d22848f8236e8/registry/logo.png) -This image contains an implementation of the Docker Registry HTTP API V2 for use with Docker 1.6+. See [github.com/distribution/distribution](https://github.com/distribution/distribution) for more details about what it is. +This image contains an implementation of the OCI Distribution spec. See [github.com/opencontainers/distribution-spec](https://github.com/opencontainers/distribution-spec) for more details about what it is. You can find the full source code in [github.com/distribution/distribution](https://github.com/distribution/distribution). ## Run a local registry: Quick Version @@ -69,13 +67,13 @@ $ docker push localhost:5000/ubuntu ## Recommended Reading -The [documentation over at docs.docker.com](https://docs.docker.com/registry/) is a good place to learn more about what the registry is, how it works, and how to use it. +The [documentation](https://distribution.github.io/distribution/) is a good place to learn more about what the registry is, how it works, and how to use it. -Specifically, [the section regarding deployment](https://docs.docker.com/registry/deploying/) has pointers for more complex use cases than simply running a registry on localhost. +Specifically, [the section regarding deployment](https://distribution.github.io/distribution/about/deploying/) has pointers for more complex use cases than simply running a registry on localhost. # License -View [license information](https://github.com/docker/distribution/blob/master/LICENSE) for the software contained in this image. +View [license information](https://github.com/distribution/distribution/blob/master/LICENSE) for the software contained in this image. 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). diff --git a/registry/content.md b/registry/content.md index 1e37ab63a262..6b0c7b28cc69 100644 --- a/registry/content.md +++ b/registry/content.md @@ -2,7 +2,7 @@ %%LOGO%% -This image contains an implementation of the Docker Registry HTTP API V2 for use with Docker 1.6+. See [github.com/distribution/distribution](https://github.com/distribution/distribution) for more details about what it is. +This image contains an implementation of the OCI Distribution spec. See [github.com/opencontainers/distribution-spec](https://github.com/opencontainers/distribution-spec) for more details about what it is. You can find the full source code in [github.com/distribution/distribution](https://github.com/distribution/distribution). ## Run a local registry: Quick Version @@ -20,6 +20,6 @@ $ docker push localhost:5000/ubuntu ## Recommended Reading -The [documentation over at docs.docker.com](https://docs.docker.com/registry/) is a good place to learn more about what the registry is, how it works, and how to use it. +The [documentation](https://distribution.github.io/distribution/) is a good place to learn more about what the registry is, how it works, and how to use it. -Specifically, [the section regarding deployment](https://docs.docker.com/registry/deploying/) has pointers for more complex use cases than simply running a registry on localhost. +Specifically, [the section regarding deployment](https://distribution.github.io/distribution/about/deploying/) has pointers for more complex use cases than simply running a registry on localhost. diff --git a/registry/get-help.md b/registry/get-help.md index 4d954e7f170c..b88107ba64e8 100644 --- a/registry/get-help.md +++ b/registry/get-help.md @@ -1,3 +1 @@ [CNCF community slack](https://slack.cncf.io/), or [Stack Overflow](https://stackoverflow.com/questions/tagged/docker+registry) - -- **Need a free, secure hosted registry?** Try [Docker Hub](https://www.docker.com/pricing). diff --git a/registry/github-repo b/registry/github-repo index c7a1ed75d470..a0a5cea5684e 100644 --- a/registry/github-repo +++ b/registry/github-repo @@ -1 +1 @@ -https://github.com/docker/distribution-library-image +https://github.com/distribution/distribution-library-image diff --git a/registry/license.md b/registry/license.md index 8ce5c18f7719..fc49421da5be 100644 --- a/registry/license.md +++ b/registry/license.md @@ -1 +1 @@ -View [license information](https://github.com/docker/distribution/blob/master/LICENSE) for the software contained in this image. +View [license information](https://github.com/distribution/distribution/blob/master/LICENSE) for the software contained in this image. diff --git a/registry/maintainer.md b/registry/maintainer.md index 617c4fb974a1..e727ff0696ae 120000 --- a/registry/maintainer.md +++ b/registry/maintainer.md @@ -1 +1 @@ -../.common-templates/maintainer-docker.md \ No newline at end of file +../.common-templates/maintainer-community.md \ No newline at end of file diff --git a/registry/metadata.json b/registry/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/registry/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/rethinkdb/README.md b/rethinkdb/README.md index 0e4f76003004..34c9a8d353ed 100644 --- a/rethinkdb/README.md +++ b/rethinkdb/README.md @@ -24,7 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`2.4.2-bullseye-slim`, `2.4-bullseye-slim`, `2-bullseye-slim`, `bullseye-slim`, `2.4.2`, `2.4`, `2`, `latest`](https://github.com/rethinkdb/rethinkdb-dockerfiles/blob/826a4193366e7d0ff176d101679385125b8fa4f1/bullseye/2.4.2/Dockerfile) +- [`2.4.4-bookworm-slim`, `2.4-bookworm-slim`, `2-bookworm-slim`, `bookworm-slim`, `2.4.3`, `2.4`, `2`, `latest`](https://github.com/rethinkdb/rethinkdb-dockerfiles/blob/48876a66c3be922c6b01c436bf78d662e53bceef/bookworm/2.4.4/Dockerfile) # Quick reference (cont.) @@ -102,7 +102,7 @@ The `rethinkdb` images come in many flavors, each designed for a specific use ca 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. -Some of these tags may have names like 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. +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. ## `rethinkdb:-slim` diff --git a/rethinkdb/metadata.json b/rethinkdb/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/rethinkdb/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/rocket.chat/README.md b/rocket.chat/README.md index 970899be580a..811285294d36 100644 --- a/rocket.chat/README.md +++ b/rocket.chat/README.md @@ -24,9 +24,19 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`6.4.2`, `6.4`, `6`, `latest`](https://github.com/RocketChat/Docker.Official.Image/blob/410f2d1e90a88b01a4ebd7939dd32c943a10965a/6.4/Dockerfile) -- [`6.3.10`, `6.3`](https://github.com/RocketChat/Docker.Official.Image/blob/b73be519a9f4b22e58905885790c17dbcca19bc7/6.3/Dockerfile) -- [`6.2.12`, `6.2`](https://github.com/RocketChat/Docker.Official.Image/blob/ee9c8a148b353c14ecc1225598c60a0f98ebf07b/6.2/Dockerfile) +- [`7.7.1`, `7.7`, `7`, `latest`](https://github.com/RocketChat/Docker.Official.Image/blob/f8b830091f7a8eb1576c1db6b73f2e6bc244a34c/7.7/Dockerfile) + +- [`7.6.3`, `7.6`](https://github.com/RocketChat/Docker.Official.Image/blob/baa98d62388a0ef1975816c8489679832ef8e8f8/7.6/Dockerfile) + +- [`7.5.2`, `7.5`](https://github.com/RocketChat/Docker.Official.Image/blob/baa98d62388a0ef1975816c8489679832ef8e8f8/7.5/Dockerfile) + +- [`7.4.3`, `7.4`](https://github.com/RocketChat/Docker.Official.Image/blob/baa98d62388a0ef1975816c8489679832ef8e8f8/7.4/Dockerfile) + +- [`7.3.5`, `7.3`](https://github.com/RocketChat/Docker.Official.Image/blob/baa98d62388a0ef1975816c8489679832ef8e8f8/7.3/Dockerfile) + +- [`7.2.6`, `7.2`](https://github.com/RocketChat/Docker.Official.Image/blob/baa98d62388a0ef1975816c8489679832ef8e8f8/7.2/Dockerfile) + +- [`7.1.6`, `7.1`](https://github.com/RocketChat/Docker.Official.Image/blob/baa98d62388a0ef1975816c8489679832ef8e8f8/7.1/Dockerfile) # Quick reference (cont.) diff --git a/rocket.chat/metadata.json b/rocket.chat/metadata.json new file mode 100644 index 000000000000..e90624aca4ca --- /dev/null +++ b/rocket.chat/metadata.json @@ -0,0 +1,5 @@ +{ + "hub": { + "categories": [] + } +} diff --git a/rockylinux/README.md b/rockylinux/README.md index ff98da78caaf..710780881650 100644 --- a/rockylinux/README.md +++ b/rockylinux/README.md @@ -14,6 +14,10 @@ WARNING: --> +# IMPORTANT NOTE + +The Docker team curates the Official Images program, and there are currently some technical constraints preventing Rocky Linux from publishing updates here. For the most up-to-date container images, please refer to the [Rocky Linux Docker Hub repository](https://hub.docker.com/r/rockylinux/rockylinux) for now. + # Quick reference - **Maintained by**: @@ -24,10 +28,13 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`9.2.20230513`, `9.2`, `9`](https://github.com/rocky-linux/sig-cloud-instance-images/blob/5534796e428e5ac942d820bc96a36a5d0404a8a4/Dockerfile) -- [`9.2.20230513-minimal`, `9.2-minimal`, `9-minimal`](https://github.com/rocky-linux/sig-cloud-instance-images/blob/7be807edccbbb7b64872f1a6b6c24cc2edabf3bd/Dockerfile) -- [`8.8.20230518`, `8.8`, `8`](https://github.com/rocky-linux/sig-cloud-instance-images/blob/1c46fd092fd28c6192435baa61e66a00e66f7029/Dockerfile) -- [`8.8.20230518-minimal`, `8.8-minimal`, `8-minimal`](https://github.com/rocky-linux/sig-cloud-instance-images/blob/62c9ffd4470199b37a57ac260d1368ad239d476c/Dockerfile) +- [`9.3.20231119`, `9.3`, `9`](https://github.com/rocky-linux/sig-cloud-instance-images/blob/53416a9aaea6ac6ded18c2047d51e26983160faf/Dockerfile) + +- [`9.3.20231119-minimal`, `9.3-minimal`, `9-minimal`](https://github.com/rocky-linux/sig-cloud-instance-images/blob/e784104b999a1ff6b66cb0aeee0408fb030c840b/Dockerfile) + +- [`8.9.20231119`, `8.9`, `8`](https://github.com/rocky-linux/sig-cloud-instance-images/blob/2085c6419637bf970a532888141569c5865ae61f/Dockerfile) + +- [`8.9.20231119-minimal`, `8.9-minimal`, `8-minimal`](https://github.com/rocky-linux/sig-cloud-instance-images/blob/6d81e6b46e052158df83357c569c8a6773a81e78/Dockerfile) # Quick reference (cont.) @@ -35,7 +42,7 @@ WARNING: [https://bugs.rockylinux.org](https://bugs.rockylinux.org) or [GitHub](https://github.com/rocky-linux/sig-cloud-instance-images/issues) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/rockylinux/), [`arm64v8`](https://hub.docker.com/r/arm64v8/rockylinux/), [`s390x`](https://hub.docker.com/r/s390x/rockylinux/) + [`amd64`](https://hub.docker.com/r/amd64/rockylinux/), [`arm64v8`](https://hub.docker.com/r/arm64v8/rockylinux/), [`ppc64le`](https://hub.docker.com/r/ppc64le/rockylinux/), [`s390x`](https://hub.docker.com/r/s390x/rockylinux/) - **Published image artifact details**: [repo-info repo's `repos/rockylinux/` directory](https://github.com/docker-library/repo-info/blob/master/repos/rockylinux) ([history](https://github.com/docker-library/repo-info/commits/master/repos/rockylinux)) diff --git a/rockylinux/deprecated.md b/rockylinux/deprecated.md new file mode 100644 index 000000000000..87abc0481f1b --- /dev/null +++ b/rockylinux/deprecated.md @@ -0,0 +1,3 @@ +# IMPORTANT NOTE + +The Docker team curates the Official Images program, and there are currently some technical constraints preventing Rocky Linux from publishing updates here. For the most up-to-date container images, please refer to the [Rocky Linux Docker Hub repository](https://hub.docker.com/r/rockylinux/rockylinux) for now. diff --git a/rockylinux/metadata.json b/rockylinux/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/rockylinux/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/ros/README.md b/ros/README.md index 0e94dab85a6e..27707510f35a 100644 --- a/ros/README.md +++ b/ros/README.md @@ -24,19 +24,29 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`noetic-ros-core`, `noetic-ros-core-focal`](https://github.com/osrf/docker_images/blob/3f4fbca923d80f834f3a89b5960bad5582652519/ros/noetic/ubuntu/focal/ros-core/Dockerfile) -- [`noetic-ros-base`, `noetic-ros-base-focal`, `noetic`](https://github.com/osrf/docker_images/blob/df19ab7d5993d3b78a908362cdcd1479a8e78b35/ros/noetic/ubuntu/focal/ros-base/Dockerfile) -- [`noetic-robot`, `noetic-robot-focal`](https://github.com/osrf/docker_images/blob/df19ab7d5993d3b78a908362cdcd1479a8e78b35/ros/noetic/ubuntu/focal/robot/Dockerfile) -- [`noetic-perception`, `noetic-perception-focal`](https://github.com/osrf/docker_images/blob/df19ab7d5993d3b78a908362cdcd1479a8e78b35/ros/noetic/ubuntu/focal/perception/Dockerfile) -- [`humble-ros-core`, `humble-ros-core-jammy`](https://github.com/osrf/docker_images/blob/3f4fbca923d80f834f3a89b5960bad5582652519/ros/humble/ubuntu/jammy/ros-core/Dockerfile) -- [`humble-ros-base`, `humble-ros-base-jammy`, `humble`, `latest`](https://github.com/osrf/docker_images/blob/20e3ba685bb353a3c00be9ba01c1b7a6823c9472/ros/humble/ubuntu/jammy/ros-base/Dockerfile) +- [`humble-ros-core`, `humble-ros-core-jammy`](https://github.com/osrf/docker_images/blob/eb5634cf92ba079897e44fb7541d3b78aa6cf717/ros/humble/ubuntu/jammy/ros-core/Dockerfile) + +- [`humble-ros-base`, `humble-ros-base-jammy`, `humble`](https://github.com/osrf/docker_images/blob/20e3ba685bb353a3c00be9ba01c1b7a6823c9472/ros/humble/ubuntu/jammy/ros-base/Dockerfile) + - [`humble-perception`, `humble-perception-jammy`](https://github.com/osrf/docker_images/blob/20d40c96b426b8956dec203e236abff2ec29b188/ros/humble/ubuntu/jammy/perception/Dockerfile) -- [`iron-ros-core`, `iron-ros-core-jammy`](https://github.com/osrf/docker_images/blob/bca53bf4c09d771be3ff735da4157203b53ebc2b/ros/iron/ubuntu/jammy/ros-core/Dockerfile) -- [`iron-ros-base`, `iron-ros-base-jammy`, `iron`](https://github.com/osrf/docker_images/blob/bca53bf4c09d771be3ff735da4157203b53ebc2b/ros/iron/ubuntu/jammy/ros-base/Dockerfile) -- [`iron-perception`, `iron-perception-jammy`](https://github.com/osrf/docker_images/blob/bca53bf4c09d771be3ff735da4157203b53ebc2b/ros/iron/ubuntu/jammy/perception/Dockerfile) -- [`rolling-ros-core`, `rolling-ros-core-jammy`](https://github.com/osrf/docker_images/blob/73c1bf4c30e97d5d3d7c2aaddc8137cae2411409/ros/rolling/ubuntu/jammy/ros-core/Dockerfile) -- [`rolling-ros-base`, `rolling-ros-base-jammy`, `rolling`](https://github.com/osrf/docker_images/blob/73c1bf4c30e97d5d3d7c2aaddc8137cae2411409/ros/rolling/ubuntu/jammy/ros-base/Dockerfile) -- [`rolling-perception`, `rolling-perception-jammy`](https://github.com/osrf/docker_images/blob/73c1bf4c30e97d5d3d7c2aaddc8137cae2411409/ros/rolling/ubuntu/jammy/perception/Dockerfile) + +- [`jazzy-ros-core`, `jazzy-ros-core-noble`](https://github.com/osrf/docker_images/blob/eb5634cf92ba079897e44fb7541d3b78aa6cf717/ros/jazzy/ubuntu/noble/ros-core/Dockerfile) + +- [`jazzy-ros-base`, `jazzy-ros-base-noble`, `jazzy`, `latest`](https://github.com/osrf/docker_images/blob/0038f1c3a11aa0fc573d698b39ab5c204aad5a40/ros/jazzy/ubuntu/noble/ros-base/Dockerfile) + +- [`jazzy-perception`, `jazzy-perception-noble`](https://github.com/osrf/docker_images/blob/0038f1c3a11aa0fc573d698b39ab5c204aad5a40/ros/jazzy/ubuntu/noble/perception/Dockerfile) + +- [`kilted-ros-core`, `kilted-ros-core-noble`](https://github.com/osrf/docker_images/blob/eb5634cf92ba079897e44fb7541d3b78aa6cf717/ros/kilted/ubuntu/noble/ros-core/Dockerfile) + +- [`kilted-ros-base`, `kilted-ros-base-noble`, `kilted`](https://github.com/osrf/docker_images/blob/b835a530495c0b411a0d15db858710a2748ee0a0/ros/kilted/ubuntu/noble/ros-base/Dockerfile) + +- [`kilted-perception`, `kilted-perception-noble`](https://github.com/osrf/docker_images/blob/b835a530495c0b411a0d15db858710a2748ee0a0/ros/kilted/ubuntu/noble/perception/Dockerfile) + +- [`rolling-ros-core`, `rolling-ros-core-noble`](https://github.com/osrf/docker_images/blob/8cf2903c0f8813aacd3042c71d4d2d56d5068ad5/ros/rolling/ubuntu/noble/ros-core/Dockerfile) + +- [`rolling-ros-base`, `rolling-ros-base-noble`, `rolling`](https://github.com/osrf/docker_images/blob/8cf2903c0f8813aacd3042c71d4d2d56d5068ad5/ros/rolling/ubuntu/noble/ros-base/Dockerfile) + +- [`rolling-perception`, `rolling-perception-noble`](https://github.com/osrf/docker_images/blob/8cf2903c0f8813aacd3042c71d4d2d56d5068ad5/ros/rolling/ubuntu/noble/perception/Dockerfile) # Quick reference (cont.) @@ -44,7 +54,7 @@ WARNING: [https://github.com/osrf/docker_images/issues](https://github.com/osrf/docker_images/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/ros/), [`arm32v7`](https://hub.docker.com/r/arm32v7/ros/), [`arm64v8`](https://hub.docker.com/r/arm64v8/ros/) + [`amd64`](https://hub.docker.com/r/amd64/ros/), [`arm64v8`](https://hub.docker.com/r/arm64v8/ros/) - **Published image artifact details**: [repo-info repo's `repos/ros/` directory](https://github.com/docker-library/repo-info/blob/master/repos/ros) ([history](https://github.com/docker-library/repo-info/commits/master/repos/ros)) @@ -81,7 +91,7 @@ RUN apt-get update && apt-get install -y \ rm -rf /var/lib/apt/lists/* # launch ros package -CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener.launch.py"] +CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener_launch.py"] ``` Note: all ROS images include a default entrypoint that sources the ROS environment setup before executing the configured command, in this case the demo packages launch file. You can then build and run the Docker image like so: @@ -161,7 +171,7 @@ RUN sed --in-place --expression \ /ros_entrypoint.sh # run launch file -CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener.launch.py"] +CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener_launch.py"] ``` The example above starts by using [`vcstool`](https://github.com/dirk-thomas/vcstool) to clone source repos of interest into the cacher stage. One could similarly `COPY` code from the local build context into the source directory as well. Package manifest files are then cached in a temporary directory where the following builder stage may copy from to install necessary dependencies with [`rosdep`](https://github.com/ros-infrastructure/rosdep). This is done prior to copying the rest of the source files to preserve the multi-stage build cache, given unaltered manifests do not alter declared dependencies, saving time and bandwidth. The overlay is then built using [`colcon`](https://colcon.readthedocs.io/en/released/), the entrypoint updated to source the workspace, and the default command set to launch the demo. @@ -216,13 +226,11 @@ Alternatively, more permissive network settings can be used to share all host ne ### Docker Compose -In this example we'll demonstrate using [`docker-compose`](https://docs.docker.com/compose/) to spawn a pair of message publisher and subscriber nodes in separate containers connected through shared software defined network. +In this example we'll demonstrate using [`docker compose`](https://docs.docker.com/compose/) to spawn a pair of message publisher and subscriber nodes in separate containers connected through shared software defined network. -> Create the directory `~/ros_demos` and add the first `Dockerfile` example from above. In the same directory, also create file `docker-compose.yml` with the following that runs a C++ publisher with a Python subscriber: +> Create the directory `~/ros_demos` and add the first `Dockerfile` example from above. In the same directory, also create file `compose.yaml` with the following that runs a C++ publisher with a Python subscriber: ```yaml -version: '3' - services: talker: build: ./ @@ -235,10 +243,10 @@ services: command: ros2 run demo_nodes_py listener ``` -> Use docker-compose inside the same directory to launch our ROS nodes. Given the containers created derive from the same docker compose project, they will coexist on shared project network: +> Use `docker compose` inside the same directory to launch our ROS nodes. Given the containers created derive from the same docker compose project, they will coexist on shared project network: ```console -$ docker-compose up -d +$ docker compose up -d ``` > Notice that a new network named `ros_demos_default` has been created, as can be shown further with: @@ -250,21 +258,21 @@ $ docker network inspect ros_demos_default > We can monitor the logged output of each container, such as the listener node like so: ```console -$ docker-compose logs listener +$ docker compose logs listener ``` -> Finally, we can stop and remove all the relevant containers using docker-compose from the same directory: +> Finally, we can stop and remove all the relevant containers using `docker compose` from the same directory: ```console -$ docker-compose stop -$ docker-compose rm +$ docker compose stop +$ docker compose rm ``` -> Note: the auto-generated network, `ros_demos_default`, will persist until you explicitly remove it using `docker-compose down`. +> Note: the auto-generated network, `ros_demos_default`, will persist until you explicitly remove it using `docker compose down`. ### ROS 1 Bridge -To ease ROS 2 migration, [`ros1_bridge`](https://index.ros.org/p/ros1_bridge/github-ros2-ros1_bridge) is a ROS 2 package that provides bidirectional communication between ROS 1 and ROS 2. As a minimal example, given the ROS 2 Dockerfile above, we'll create the ROS 1 equivalent below, and name the Dockerfile appropriately. +To ease ROS 2 migration, [`ros1_bridge`](https://index.ros.org/p/ros1_bridge) is a ROS 2 package that provides bidirectional communication between ROS 1 and ROS 2. As a minimal example, given the ROS 2 Dockerfile above, we'll create the ROS 1 equivalent below, and name the Dockerfile appropriately. ```dockerfile FROM ros:noetic @@ -276,14 +284,12 @@ RUN apt-get update && apt-get install -y \ rm -rf /var/lib/apt/lists/* # launch ros package -CMD ["roslaunch", "roscpp_tutorials", "talker_listener.launch"] +CMD ["roslaunch", "roscpp_tutorials", "talker_listener_launch"] ``` The compose file bellow spawns services for both talker listener demos while connecting the two via a dynamic bridge. You may then view the log output from both pairs of talker and listener nodes cross talking over the `/chatter` topic. ```yaml -version: '3' - services: ros1: build: @@ -309,12 +315,12 @@ services: [Q&A](https://answers.ros.org/questions/): Ask questions. Get answers [Forums](https://discourse.ros.org/): Hear the latest discussions [Blog](http://www.ros.org/news/): Stay up-to-date -[Packages](https://index.ros.org/packages/): Discover indexed packages +[Packages](https://index.ros.org/?search_packages=true): Discover indexed packages [OSRF](https://www.osrfoundation.org/): Open Source Robotics Foundation ## ROS 2 -[Index](https://index.ros.org/doc/ros2/): ROS 2 Documentation +[Index](https://docs.ros.org): ROS 2 Documentation [Design](https://design.ros2.org/): ROS 2 Design Articles ## ROS 1 diff --git a/ros/content.md b/ros/content.md index 2f14ee99e988..86033fbbfda8 100644 --- a/ros/content.md +++ b/ros/content.md @@ -22,7 +22,7 @@ RUN apt-get update && apt-get install -y \ rm -rf /var/lib/apt/lists/* # launch ros package -CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener.launch.py"] +CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener_launch.py"] ``` Note: all ROS images include a default entrypoint that sources the ROS environment setup before executing the configured command, in this case the demo packages launch file. You can then build and run the Docker image like so: @@ -102,7 +102,7 @@ RUN sed --in-place --expression \ /ros_entrypoint.sh # run launch file -CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener.launch.py"] +CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener_launch.py"] ``` The example above starts by using [`vcstool`](https://github.com/dirk-thomas/vcstool) to clone source repos of interest into the cacher stage. One could similarly `COPY` code from the local build context into the source directory as well. Package manifest files are then cached in a temporary directory where the following builder stage may copy from to install necessary dependencies with [`rosdep`](https://github.com/ros-infrastructure/rosdep). This is done prior to copying the rest of the source files to preserve the multi-stage build cache, given unaltered manifests do not alter declared dependencies, saving time and bandwidth. The overlay is then built using [`colcon`](https://colcon.readthedocs.io/en/released/), the entrypoint updated to source the workspace, and the default command set to launch the demo. @@ -157,13 +157,11 @@ Alternatively, more permissive network settings can be used to share all host ne ### Docker Compose -In this example we'll demonstrate using [`docker-compose`](https://docs.docker.com/compose/) to spawn a pair of message publisher and subscriber nodes in separate containers connected through shared software defined network. +In this example we'll demonstrate using [`docker compose`](https://docs.docker.com/compose/) to spawn a pair of message publisher and subscriber nodes in separate containers connected through shared software defined network. -> Create the directory `~/ros_demos` and add the first `Dockerfile` example from above. In the same directory, also create file `docker-compose.yml` with the following that runs a C++ publisher with a Python subscriber: +> Create the directory `~/ros_demos` and add the first `Dockerfile` example from above. In the same directory, also create file `compose.yaml` with the following that runs a C++ publisher with a Python subscriber: ```yaml -version: '3' - services: talker: build: ./ @@ -176,10 +174,10 @@ services: command: ros2 run demo_nodes_py listener ``` -> Use docker-compose inside the same directory to launch our ROS nodes. Given the containers created derive from the same docker compose project, they will coexist on shared project network: +> Use `docker compose` inside the same directory to launch our ROS nodes. Given the containers created derive from the same docker compose project, they will coexist on shared project network: ```console -$ docker-compose up -d +$ docker compose up -d ``` > Notice that a new network named `ros_demos_default` has been created, as can be shown further with: @@ -191,21 +189,21 @@ $ docker network inspect ros_demos_default > We can monitor the logged output of each container, such as the listener node like so: ```console -$ docker-compose logs listener +$ docker compose logs listener ``` -> Finally, we can stop and remove all the relevant containers using docker-compose from the same directory: +> Finally, we can stop and remove all the relevant containers using `docker compose` from the same directory: ```console -$ docker-compose stop -$ docker-compose rm +$ docker compose stop +$ docker compose rm ``` -> Note: the auto-generated network, `ros_demos_default`, will persist until you explicitly remove it using `docker-compose down`. +> Note: the auto-generated network, `ros_demos_default`, will persist until you explicitly remove it using `docker compose down`. ### ROS 1 Bridge -To ease ROS 2 migration, [`ros1_bridge`](https://index.ros.org/p/ros1_bridge/github-ros2-ros1_bridge) is a ROS 2 package that provides bidirectional communication between ROS 1 and ROS 2. As a minimal example, given the ROS 2 Dockerfile above, we'll create the ROS 1 equivalent below, and name the Dockerfile appropriately. +To ease ROS 2 migration, [`ros1_bridge`](https://index.ros.org/p/ros1_bridge) is a ROS 2 package that provides bidirectional communication between ROS 1 and ROS 2. As a minimal example, given the ROS 2 Dockerfile above, we'll create the ROS 1 equivalent below, and name the Dockerfile appropriately. ```dockerfile FROM %%IMAGE%%:noetic @@ -217,14 +215,12 @@ RUN apt-get update && apt-get install -y \ rm -rf /var/lib/apt/lists/* # launch ros package -CMD ["roslaunch", "roscpp_tutorials", "talker_listener.launch"] +CMD ["roslaunch", "roscpp_tutorials", "talker_listener_launch"] ``` The compose file bellow spawns services for both talker listener demos while connecting the two via a dynamic bridge. You may then view the log output from both pairs of talker and listener nodes cross talking over the `/chatter` topic. ```yaml -version: '3' - services: ros1: build: @@ -250,12 +246,12 @@ services: [Q&A](https://answers.ros.org/questions/): Ask questions. Get answers [Forums](https://discourse.ros.org/): Hear the latest discussions [Blog](http://www.ros.org/news/): Stay up-to-date -[Packages](https://index.ros.org/packages/): Discover indexed packages +[Packages](https://index.ros.org/?search_packages=true): Discover indexed packages [OSRF](https://www.osrfoundation.org/): Open Source Robotics Foundation ## ROS 2 -[Index](https://index.ros.org/doc/ros2/): ROS 2 Documentation +[Index](https://docs.ros.org): ROS 2 Documentation [Design](https://design.ros2.org/): ROS 2 Design Articles ## ROS 1 diff --git a/ros/metadata.json b/ros/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/ros/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/ruby/README.md b/ruby/README.md index 276b1af8d00b..f72f6638b99e 100644 --- a/ruby/README.md +++ b/ruby/README.md @@ -24,29 +24,53 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.3.0-preview3-bookworm`, `3.3-rc-bookworm`, `3.3.0-preview3`, `3.3-rc`](https://github.com/docker-library/ruby/blob/897d5b47686172a3ad13fd6ddc48f6eaabf151c7/3.3-rc/bookworm/Dockerfile) -- [`3.3.0-preview3-slim-bookworm`, `3.3-rc-slim-bookworm`, `3.3.0-preview3-slim`, `3.3-rc-slim`](https://github.com/docker-library/ruby/blob/897d5b47686172a3ad13fd6ddc48f6eaabf151c7/3.3-rc/slim-bookworm/Dockerfile) -- [`3.3.0-preview3-bullseye`, `3.3-rc-bullseye`](https://github.com/docker-library/ruby/blob/897d5b47686172a3ad13fd6ddc48f6eaabf151c7/3.3-rc/bullseye/Dockerfile) -- [`3.3.0-preview3-slim-bullseye`, `3.3-rc-slim-bullseye`](https://github.com/docker-library/ruby/blob/897d5b47686172a3ad13fd6ddc48f6eaabf151c7/3.3-rc/slim-bullseye/Dockerfile) -- [`3.3.0-preview3-alpine3.18`, `3.3-rc-alpine3.18`, `3.3.0-preview3-alpine`, `3.3-rc-alpine`](https://github.com/docker-library/ruby/blob/897d5b47686172a3ad13fd6ddc48f6eaabf151c7/3.3-rc/alpine3.18/Dockerfile) -- [`3.3.0-preview3-alpine3.17`, `3.3-rc-alpine3.17`](https://github.com/docker-library/ruby/blob/897d5b47686172a3ad13fd6ddc48f6eaabf151c7/3.3-rc/alpine3.17/Dockerfile) -- [`3.2.2-bookworm`, `3.2-bookworm`, `3-bookworm`, `bookworm`, `3.2.2`, `3.2`, `3`, `latest`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.2/bookworm/Dockerfile) -- [`3.2.2-slim-bookworm`, `3.2-slim-bookworm`, `3-slim-bookworm`, `slim-bookworm`, `3.2.2-slim`, `3.2-slim`, `3-slim`, `slim`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.2/slim-bookworm/Dockerfile) -- [`3.2.2-bullseye`, `3.2-bullseye`, `3-bullseye`, `bullseye`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.2/bullseye/Dockerfile) -- [`3.2.2-slim-bullseye`, `3.2-slim-bullseye`, `3-slim-bullseye`, `slim-bullseye`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.2/slim-bullseye/Dockerfile) -- [`3.2.2-alpine3.18`, `3.2-alpine3.18`, `3-alpine3.18`, `alpine3.18`, `3.2.2-alpine`, `3.2-alpine`, `3-alpine`, `alpine`](https://github.com/docker-library/ruby/blob/39aa7dd5e4ebeef3f466d486f1094b09e41d6c5b/3.2/alpine3.18/Dockerfile) -- [`3.2.2-alpine3.17`, `3.2-alpine3.17`, `3-alpine3.17`, `alpine3.17`](https://github.com/docker-library/ruby/blob/39aa7dd5e4ebeef3f466d486f1094b09e41d6c5b/3.2/alpine3.17/Dockerfile) -- [`3.1.4-bookworm`, `3.1-bookworm`, `3.1.4`, `3.1`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.1/bookworm/Dockerfile) -- [`3.1.4-slim-bookworm`, `3.1-slim-bookworm`, `3.1.4-slim`, `3.1-slim`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.1/slim-bookworm/Dockerfile) -- [`3.1.4-bullseye`, `3.1-bullseye`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.1/bullseye/Dockerfile) -- [`3.1.4-slim-bullseye`, `3.1-slim-bullseye`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.1/slim-bullseye/Dockerfile) -- [`3.1.4-alpine3.18`, `3.1-alpine3.18`, `3.1.4-alpine`, `3.1-alpine`](https://github.com/docker-library/ruby/blob/39aa7dd5e4ebeef3f466d486f1094b09e41d6c5b/3.1/alpine3.18/Dockerfile) -- [`3.1.4-alpine3.17`, `3.1-alpine3.17`](https://github.com/docker-library/ruby/blob/39aa7dd5e4ebeef3f466d486f1094b09e41d6c5b/3.1/alpine3.17/Dockerfile) -- [`3.0.6-bullseye`, `3.0-bullseye`, `3.0.6`, `3.0`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.0/bullseye/Dockerfile) -- [`3.0.6-slim-bullseye`, `3.0-slim-bullseye`, `3.0.6-slim`, `3.0-slim`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.0/slim-bullseye/Dockerfile) -- [`3.0.6-buster`, `3.0-buster`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.0/buster/Dockerfile) -- [`3.0.6-slim-buster`, `3.0-slim-buster`](https://github.com/docker-library/ruby/blob/ed1be47a38a7a24a0aa03c450549afcb592f02a8/3.0/slim-buster/Dockerfile) -- [`3.0.6-alpine3.16`, `3.0-alpine3.16`, `3.0.6-alpine`, `3.0-alpine`](https://github.com/docker-library/ruby/blob/39aa7dd5e4ebeef3f466d486f1094b09e41d6c5b/3.0/alpine3.16/Dockerfile) +- [`3.5.0-preview1-bookworm`, `3.5-rc-bookworm`, `3.5.0-preview1`, `3.5-rc`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/bookworm/Dockerfile) + +- [`3.5.0-preview1-slim-bookworm`, `3.5-rc-slim-bookworm`, `3.5.0-preview1-slim`, `3.5-rc-slim`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/slim-bookworm/Dockerfile) + +- [`3.5.0-preview1-bullseye`, `3.5-rc-bullseye`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/bullseye/Dockerfile) + +- [`3.5.0-preview1-slim-bullseye`, `3.5-rc-slim-bullseye`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/slim-bullseye/Dockerfile) + +- [`3.5.0-preview1-alpine3.22`, `3.5-rc-alpine3.22`, `3.5.0-preview1-alpine`, `3.5-rc-alpine`](https://github.com/docker-library/ruby/blob/7d367fd4559ed09fedea90e1184638b36cfb64d2/3.5-rc/alpine3.22/Dockerfile) + +- [`3.5.0-preview1-alpine3.21`, `3.5-rc-alpine3.21`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/alpine3.21/Dockerfile) + +- [`3.4.4-bookworm`, `3.4-bookworm`, `3-bookworm`, `bookworm`, `3.4.4`, `3.4`, `3`, `latest`](https://github.com/docker-library/ruby/blob/7d865400f938b2597b3feffbd900040c11b41eed/3.4/bookworm/Dockerfile) + +- [`3.4.4-slim-bookworm`, `3.4-slim-bookworm`, `3-slim-bookworm`, `slim-bookworm`, `3.4.4-slim`, `3.4-slim`, `3-slim`, `slim`](https://github.com/docker-library/ruby/blob/7d865400f938b2597b3feffbd900040c11b41eed/3.4/slim-bookworm/Dockerfile) + +- [`3.4.4-bullseye`, `3.4-bullseye`, `3-bullseye`, `bullseye`](https://github.com/docker-library/ruby/blob/7d865400f938b2597b3feffbd900040c11b41eed/3.4/bullseye/Dockerfile) + +- [`3.4.4-slim-bullseye`, `3.4-slim-bullseye`, `3-slim-bullseye`, `slim-bullseye`](https://github.com/docker-library/ruby/blob/7d865400f938b2597b3feffbd900040c11b41eed/3.4/slim-bullseye/Dockerfile) + +- [`3.4.4-alpine3.22`, `3.4-alpine3.22`, `3-alpine3.22`, `alpine3.22`, `3.4.4-alpine`, `3.4-alpine`, `3-alpine`, `alpine`](https://github.com/docker-library/ruby/blob/7d367fd4559ed09fedea90e1184638b36cfb64d2/3.4/alpine3.22/Dockerfile) + +- [`3.4.4-alpine3.21`, `3.4-alpine3.21`, `3-alpine3.21`, `alpine3.21`](https://github.com/docker-library/ruby/blob/7d865400f938b2597b3feffbd900040c11b41eed/3.4/alpine3.21/Dockerfile) + +- [`3.3.8-bookworm`, `3.3-bookworm`, `3.3.8`, `3.3`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/bookworm/Dockerfile) + +- [`3.3.8-slim-bookworm`, `3.3-slim-bookworm`, `3.3.8-slim`, `3.3-slim`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/slim-bookworm/Dockerfile) + +- [`3.3.8-bullseye`, `3.3-bullseye`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/bullseye/Dockerfile) + +- [`3.3.8-slim-bullseye`, `3.3-slim-bullseye`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/slim-bullseye/Dockerfile) + +- [`3.3.8-alpine3.22`, `3.3-alpine3.22`, `3.3.8-alpine`, `3.3-alpine`](https://github.com/docker-library/ruby/blob/7d367fd4559ed09fedea90e1184638b36cfb64d2/3.3/alpine3.22/Dockerfile) + +- [`3.3.8-alpine3.21`, `3.3-alpine3.21`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/alpine3.21/Dockerfile) + +- [`3.2.8-bookworm`, `3.2-bookworm`, `3.2.8`, `3.2`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/bookworm/Dockerfile) + +- [`3.2.8-slim-bookworm`, `3.2-slim-bookworm`, `3.2.8-slim`, `3.2-slim`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/slim-bookworm/Dockerfile) + +- [`3.2.8-bullseye`, `3.2-bullseye`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/bullseye/Dockerfile) + +- [`3.2.8-slim-bullseye`, `3.2-slim-bullseye`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/slim-bullseye/Dockerfile) + +- [`3.2.8-alpine3.22`, `3.2-alpine3.22`, `3.2.8-alpine`, `3.2-alpine`](https://github.com/docker-library/ruby/blob/7d367fd4559ed09fedea90e1184638b36cfb64d2/3.2/alpine3.22/Dockerfile) + +- [`3.2.8-alpine3.21`, `3.2-alpine3.21`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/alpine3.21/Dockerfile) # Quick reference (cont.) @@ -54,7 +78,7 @@ WARNING: [https://github.com/docker-library/ruby/issues](https://github.com/docker-library/ruby/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/ruby/), [`arm32v5`](https://hub.docker.com/r/arm32v5/ruby/), [`arm32v6`](https://hub.docker.com/r/arm32v6/ruby/), [`arm32v7`](https://hub.docker.com/r/arm32v7/ruby/), [`arm64v8`](https://hub.docker.com/r/arm64v8/ruby/), [`i386`](https://hub.docker.com/r/i386/ruby/), [`mips64le`](https://hub.docker.com/r/mips64le/ruby/), [`ppc64le`](https://hub.docker.com/r/ppc64le/ruby/), [`s390x`](https://hub.docker.com/r/s390x/ruby/) + [`amd64`](https://hub.docker.com/r/amd64/ruby/), [`arm32v5`](https://hub.docker.com/r/arm32v5/ruby/), [`arm32v6`](https://hub.docker.com/r/arm32v6/ruby/), [`arm32v7`](https://hub.docker.com/r/arm32v7/ruby/), [`arm64v8`](https://hub.docker.com/r/arm64v8/ruby/), [`i386`](https://hub.docker.com/r/i386/ruby/), [`mips64le`](https://hub.docker.com/r/mips64le/ruby/), [`ppc64le`](https://hub.docker.com/r/ppc64le/ruby/), [`riscv64`](https://hub.docker.com/r/riscv64/ruby/), [`s390x`](https://hub.docker.com/r/s390x/ruby/) - **Published image artifact details**: [repo-info repo's `repos/ruby/` directory](https://github.com/docker-library/repo-info/blob/master/repos/ruby) ([history](https://github.com/docker-library/repo-info/commits/master/repos/ruby)) @@ -80,7 +104,7 @@ Ruby is a dynamic, reflective, object-oriented, general-purpose, open-source pro ## Create a `Dockerfile` in your Ruby app project ```dockerfile -FROM ruby:3.0 +FROM ruby:3.3 # throw errors if Gemfile has been modified since Gemfile.lock RUN bundle config --global frozen 1 @@ -109,7 +133,7 @@ $ docker run -it --name my-running-script my-ruby-app The above example `Dockerfile` expects a `Gemfile.lock` in your app directory. This `docker run` will help you generate one. Run it in the root of your app, next to the `Gemfile`: ```console -$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app ruby:3.0 bundle install +$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app ruby:3.3 bundle install ``` ## Run a single Ruby script @@ -117,7 +141,7 @@ $ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app ruby:3.0 bundle install For many simple, single file projects, you may find it inconvenient to write a complete `Dockerfile`. In such cases, you can run a Ruby script by using the Ruby Docker image directly: ```console -$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp ruby:3.0 ruby your-daemon-or-script.rb +$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp ruby:3.3 ruby your-daemon-or-script.rb ``` ## Encoding @@ -128,7 +152,7 @@ By default, Ruby inherits the locale of the environment in which it is run. For This image sets several environment variables which change the behavior of Bundler and Gem for running a single application within a container (especially in such a way that the development sources of the application can be bind-mounted inside a container and not have `.bundle` from the host interfere with the proper functionality of the container). -The environment variables we set are canonically listed in the above-linked `Dockerfiles`, but some of them include `GEM_HOME`, `BUNDLE_PATH`, `BUNDLE_BIN`, `BUNDLE_SILENCE_ROOT_WARNING`, and `BUNDLE_APP_CONFIG`. +The environment variables we set are canonically listed in the above-linked `Dockerfiles`, but some of them include `GEM_HOME`, `BUNDLE_SILENCE_ROOT_WARNING`, and `BUNDLE_APP_CONFIG`. If these cause issues for your use case (running multiple Ruby applications in a single container, for example), setting them to the empty string *should* be sufficient for undoing their behavior. @@ -140,7 +164,7 @@ The `ruby` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like bookworm, bullseye, or buster 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. +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. 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. diff --git a/ruby/content.md b/ruby/content.md index 5fddf48924b4..1d19791995a9 100644 --- a/ruby/content.md +++ b/ruby/content.md @@ -11,7 +11,7 @@ Ruby is a dynamic, reflective, object-oriented, general-purpose, open-source pro ## Create a `Dockerfile` in your Ruby app project ```dockerfile -FROM %%IMAGE%%:3.0 +FROM %%IMAGE%%:3.3 # throw errors if Gemfile has been modified since Gemfile.lock RUN bundle config --global frozen 1 @@ -40,7 +40,7 @@ $ docker run -it --name my-running-script my-ruby-app The above example `Dockerfile` expects a `Gemfile.lock` in your app directory. This `docker run` will help you generate one. Run it in the root of your app, next to the `Gemfile`: ```console -$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app %%IMAGE%%:3.0 bundle install +$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app %%IMAGE%%:3.3 bundle install ``` ## Run a single Ruby script @@ -48,7 +48,7 @@ $ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app %%IMAGE%%:3.0 bundle in For many simple, single file projects, you may find it inconvenient to write a complete `Dockerfile`. In such cases, you can run a Ruby script by using the Ruby Docker image directly: ```console -$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:3.0 ruby your-daemon-or-script.rb +$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:3.3 ruby your-daemon-or-script.rb ``` ## Encoding @@ -59,6 +59,6 @@ By default, Ruby inherits the locale of the environment in which it is run. For This image sets several environment variables which change the behavior of Bundler and Gem for running a single application within a container (especially in such a way that the development sources of the application can be bind-mounted inside a container and not have `.bundle` from the host interfere with the proper functionality of the container). -The environment variables we set are canonically listed in the above-linked `Dockerfiles`, but some of them include `GEM_HOME`, `BUNDLE_PATH`, `BUNDLE_BIN`, `BUNDLE_SILENCE_ROOT_WARNING`, and `BUNDLE_APP_CONFIG`. +The environment variables we set are canonically listed in the above-linked `Dockerfiles`, but some of them include `GEM_HOME`, `BUNDLE_SILENCE_ROOT_WARNING`, and `BUNDLE_APP_CONFIG`. If these cause issues for your use case (running multiple Ruby applications in a single container, for example), setting them to the empty string *should* be sufficient for undoing their behavior. diff --git a/ruby/metadata.json b/ruby/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/ruby/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/rust/README.md b/rust/README.md index b6755b7e34f8..fdbd907d1fdd 100644 --- a/rust/README.md +++ b/rust/README.md @@ -24,14 +24,19 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1-buster`, `1.74-buster`, `1.74.0-buster`, `buster`](https://github.com/rust-lang/docker-rust/blob/c9d5ef80a065e00761652951a22064f0134614aa/1.74.0/buster/Dockerfile) -- [`1-slim-buster`, `1.74-slim-buster`, `1.74.0-slim-buster`, `slim-buster`](https://github.com/rust-lang/docker-rust/blob/c9d5ef80a065e00761652951a22064f0134614aa/1.74.0/buster/slim/Dockerfile) -- [`1-bullseye`, `1.74-bullseye`, `1.74.0-bullseye`, `bullseye`](https://github.com/rust-lang/docker-rust/blob/c9d5ef80a065e00761652951a22064f0134614aa/1.74.0/bullseye/Dockerfile) -- [`1-slim-bullseye`, `1.74-slim-bullseye`, `1.74.0-slim-bullseye`, `slim-bullseye`](https://github.com/rust-lang/docker-rust/blob/c9d5ef80a065e00761652951a22064f0134614aa/1.74.0/bullseye/slim/Dockerfile) -- [`1-bookworm`, `1.74-bookworm`, `1.74.0-bookworm`, `bookworm`, `1`, `1.74`, `1.74.0`, `latest`](https://github.com/rust-lang/docker-rust/blob/c9d5ef80a065e00761652951a22064f0134614aa/1.74.0/bookworm/Dockerfile) -- [`1-slim-bookworm`, `1.74-slim-bookworm`, `1.74.0-slim-bookworm`, `slim-bookworm`, `1-slim`, `1.74-slim`, `1.74.0-slim`, `slim`](https://github.com/rust-lang/docker-rust/blob/c9d5ef80a065e00761652951a22064f0134614aa/1.74.0/bookworm/slim/Dockerfile) -- [`1-alpine3.17`, `1.74-alpine3.17`, `1.74.0-alpine3.17`, `alpine3.17`](https://github.com/rust-lang/docker-rust/blob/c9d5ef80a065e00761652951a22064f0134614aa/1.74.0/alpine3.17/Dockerfile) -- [`1-alpine3.18`, `1.74-alpine3.18`, `1.74.0-alpine3.18`, `alpine3.18`, `1-alpine`, `1.74-alpine`, `1.74.0-alpine`, `alpine`](https://github.com/rust-lang/docker-rust/blob/c9d5ef80a065e00761652951a22064f0134614aa/1.74.0/alpine3.18/Dockerfile) +- [`1-bullseye`, `1.87-bullseye`, `1.87.0-bullseye`, `bullseye`](https://github.com/rust-lang/docker-rust/blob/dfb10b7de9b61ced7cd6eb3907815cadbc6f16c3/stable/bullseye/Dockerfile) + +- [`1-slim-bullseye`, `1.87-slim-bullseye`, `1.87.0-slim-bullseye`, `slim-bullseye`](https://github.com/rust-lang/docker-rust/blob/dfb10b7de9b61ced7cd6eb3907815cadbc6f16c3/stable/bullseye/slim/Dockerfile) + +- [`1-bookworm`, `1.87-bookworm`, `1.87.0-bookworm`, `bookworm`, `1`, `1.87`, `1.87.0`, `latest`](https://github.com/rust-lang/docker-rust/blob/dfb10b7de9b61ced7cd6eb3907815cadbc6f16c3/stable/bookworm/Dockerfile) + +- [`1-slim-bookworm`, `1.87-slim-bookworm`, `1.87.0-slim-bookworm`, `slim-bookworm`, `1-slim`, `1.87-slim`, `1.87.0-slim`, `slim`](https://github.com/rust-lang/docker-rust/blob/dfb10b7de9b61ced7cd6eb3907815cadbc6f16c3/stable/bookworm/slim/Dockerfile) + +- [`1-alpine3.20`, `1.87-alpine3.20`, `1.87.0-alpine3.20`, `alpine3.20`](https://github.com/rust-lang/docker-rust/blob/dfb10b7de9b61ced7cd6eb3907815cadbc6f16c3/stable/alpine3.20/Dockerfile) + +- [`1-alpine3.21`, `1.87-alpine3.21`, `1.87.0-alpine3.21`, `alpine3.21`](https://github.com/rust-lang/docker-rust/blob/dfb10b7de9b61ced7cd6eb3907815cadbc6f16c3/stable/alpine3.21/Dockerfile) + +- [`1-alpine3.22`, `1.87-alpine3.22`, `1.87.0-alpine3.22`, `alpine3.22`, `1-alpine`, `1.87-alpine`, `1.87.0-alpine`, `alpine`](https://github.com/rust-lang/docker-rust/blob/311332e026a7a603ccb2e7d8f9eb0117615f49df/stable/alpine3.22/Dockerfile) # Quick reference (cont.) @@ -39,7 +44,7 @@ WARNING: [https://github.com/rust-lang/docker-rust/issues](https://github.com/rust-lang/docker-rust/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/rust/), [`arm32v7`](https://hub.docker.com/r/arm32v7/rust/), [`arm64v8`](https://hub.docker.com/r/arm64v8/rust/), [`i386`](https://hub.docker.com/r/i386/rust/) + [`amd64`](https://hub.docker.com/r/amd64/rust/), [`arm32v7`](https://hub.docker.com/r/arm32v7/rust/), [`arm64v8`](https://hub.docker.com/r/arm64v8/rust/), [`i386`](https://hub.docker.com/r/i386/rust/), [`ppc64le`](https://hub.docker.com/r/ppc64le/rust/), [`s390x`](https://hub.docker.com/r/s390x/rust/) - **Published image artifact details**: [repo-info repo's `repos/rust/` directory](https://github.com/docker-library/repo-info/blob/master/repos/rust) ([history](https://github.com/docker-library/repo-info/commits/master/repos/rust)) @@ -122,7 +127,7 @@ The `rust` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like bookworm, bullseye, or buster 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. +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. 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. diff --git a/rust/metadata.json b/rust/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/rust/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/sapmachine/README.md b/sapmachine/README.md index 9ca2e82dcdce..15a32cb368af 100644 --- a/sapmachine/README.md +++ b/sapmachine/README.md @@ -24,18 +24,113 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`11-jre-headless-ubuntu`, `11-jre-headless-ubuntu-jammy`, `11-jre-headless-ubuntu-22.04`, `11.0.21-jre-headless-ubuntu`, `11.0.21-jre-headless-ubuntu-jammy`, `11.0.21-jre-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f85d04d3ea43c50dd1bc1db261be249dee1e6464/dockerfiles/official/11/ubuntu/jre-headless/Dockerfile) -- [`11-jre-ubuntu`, `11-jre-ubuntu-jammy`, `11-jre-ubuntu-22.04`, `11.0.21-jre-ubuntu`, `11.0.21-jre-ubuntu-jammy`, `11.0.21-jre-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f85d04d3ea43c50dd1bc1db261be249dee1e6464/dockerfiles/official/11/ubuntu/jre/Dockerfile) -- [`11-jdk-headless-ubuntu`, `11-jdk-headless-ubuntu-jammy`, `11-jdk-headless-ubuntu-22.04`, `11.0.21-jdk-headless-ubuntu`, `11.0.21-jdk-headless-ubuntu-jammy`, `11.0.21-jdk-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f85d04d3ea43c50dd1bc1db261be249dee1e6464/dockerfiles/official/11/ubuntu/jdk-headless/Dockerfile) -- [`11-jdk-ubuntu`, `11-jdk-ubuntu-jammy`, `11-jdk-ubuntu-22.04`, `11.0.21-jdk-ubuntu`, `11.0.21-jdk-ubuntu-jammy`, `11.0.21-jdk-ubuntu-22.04`, `11`, `11-ubuntu-jammy`, `11-ubuntu-22.04`, `11.0.21`, `11.0.21-ubuntu-jammy`, `11.0.21-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f85d04d3ea43c50dd1bc1db261be249dee1e6464/dockerfiles/official/11/ubuntu/jdk/Dockerfile) -- [`17-jre-headless-ubuntu`, `17-jre-headless-ubuntu-jammy`, `17-jre-headless-ubuntu-22.04`, `17.0.9-jre-headless-ubuntu`, `17.0.9-jre-headless-ubuntu-jammy`, `17.0.9-jre-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eb4c15faebbc9b6faba22c7ece6c2c0c83480768/dockerfiles/official/17/ubuntu/jre-headless/Dockerfile) -- [`17-jre-ubuntu`, `17-jre-ubuntu-jammy`, `17-jre-ubuntu-22.04`, `17.0.9-jre-ubuntu`, `17.0.9-jre-ubuntu-jammy`, `17.0.9-jre-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eb4c15faebbc9b6faba22c7ece6c2c0c83480768/dockerfiles/official/17/ubuntu/jre/Dockerfile) -- [`17-jdk-headless-ubuntu`, `17-jdk-headless-ubuntu-jammy`, `17-jdk-headless-ubuntu-22.04`, `17.0.9-jdk-headless-ubuntu`, `17.0.9-jdk-headless-ubuntu-jammy`, `17.0.9-jdk-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eb4c15faebbc9b6faba22c7ece6c2c0c83480768/dockerfiles/official/17/ubuntu/jdk-headless/Dockerfile) -- [`17-jdk-ubuntu`, `17-jdk-ubuntu-jammy`, `17-jdk-ubuntu-22.04`, `17.0.9-jdk-ubuntu`, `17.0.9-jdk-ubuntu-jammy`, `17.0.9-jdk-ubuntu-22.04`, `17`, `17-ubuntu-jammy`, `17-ubuntu-22.04`, `17.0.9`, `17.0.9-ubuntu-jammy`, `17.0.9-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eb4c15faebbc9b6faba22c7ece6c2c0c83480768/dockerfiles/official/17/ubuntu/jdk/Dockerfile) -- [`21-jre-headless-ubuntu`, `21-jre-headless-ubuntu-jammy`, `21-jre-headless-ubuntu-22.04`, `21.0.1-jre-headless-ubuntu`, `21.0.1-jre-headless-ubuntu-jammy`, `21.0.1-jre-headless-ubuntu-22.04`, `jre-headless-ubuntu`, `jre-headless-ubuntu-jammy`, `jre-headless-ubuntu-jammy-22.04`, `lts-jre-headless-ubuntu`, `lts-jre-headless-ubuntu-jammy`, `lts-jre-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/6331a3cfdcab77387d42beff859547d31b281ca7/dockerfiles/official/21/ubuntu/jre-headless/Dockerfile) -- [`21-jre-ubuntu`, `21-jre-ubuntu-jammy`, `21-jre-ubuntu-22.04`, `21.0.1-jre-ubuntu`, `21.0.1-jre-ubuntu-jammy`, `21.0.1-jre-ubuntu-22.04`, `jre-ubuntu`, `jre-ubuntu-jammy`, `jre-ubuntu-jammy-22.04`, `lts-jre-ubuntu`, `lts-jre-ubuntu-jammy`, `lts-jre-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/6331a3cfdcab77387d42beff859547d31b281ca7/dockerfiles/official/21/ubuntu/jre/Dockerfile) -- [`21-jdk-headless-ubuntu`, `21-jdk-headless-ubuntu-jammy`, `21-jdk-headless-ubuntu-22.04`, `21.0.1-jdk-headless-ubuntu`, `21.0.1-jdk-headless-ubuntu-jammy`, `21.0.1-jdk-headless-ubuntu-22.04`, `jdk-headless-ubuntu`, `jdk-headless-ubuntu-jammy`, `jdk-headless-ubuntu-jammy-22.04`, `lts-jdk-headless-ubuntu`, `lts-jdk-headless-ubuntu-jammy`, `lts-jdk-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/6331a3cfdcab77387d42beff859547d31b281ca7/dockerfiles/official/21/ubuntu/jdk-headless/Dockerfile) -- [`21-jdk-ubuntu`, `21-jdk-ubuntu-jammy`, `21-jdk-ubuntu-22.04`, `21.0.1-jdk-ubuntu`, `21.0.1-jdk-ubuntu-jammy`, `21.0.1-jdk-ubuntu-22.04`, `jdk-ubuntu`, `jdk-ubuntu-jammy`, `jdk-ubuntu-jammy-22.04`, `lts-jdk-ubuntu`, `lts-jdk-ubuntu-jammy`, `lts-jdk-ubuntu-22.04`, `21`, `21-ubuntu-jammy`, `21-ubuntu-22.04`, `21.0.1`, `21.0.1-ubuntu-jammy`, `21.0.1-ubuntu-22.04`, `latest`, `ubuntu-jammy`, `ubuntu-22.04`, `lts`, `lts-ubuntu-jammy`, `lts-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/6331a3cfdcab77387d42beff859547d31b281ca7/dockerfiles/official/21/ubuntu/jdk/Dockerfile) +- [`latest`, `jdk-ubuntu`, `24`, `24-jdk-ubuntu`, `24.0.1`, `24.0.1-jdk-ubuntu`, `ubuntu-noble`, `ubuntu-24.04`, `24-ubuntu-noble`, `24-ubuntu-24.04`, `24.0.1-ubuntu-noble`, `24.0.1-ubuntu-24.04`, `24-jdk-ubuntu-noble`, `24-jdk-ubuntu-24.04`, `jdk-ubuntu-noble`, `jdk-ubuntu-24.04`, `24.0.1-jdk-ubuntu-noble`, `24.0.1-jdk-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/24_04/jdk/Dockerfile) + +- [`jdk-headless-ubuntu`, `24-jdk-headless-ubuntu`, `24.0.1-jdk-headless-ubuntu`, `24-jdk-headless-ubuntu-noble`, `24-jdk-headless-ubuntu-24.04`, `jdk-headless-ubuntu-noble`, `jdk-headless-ubuntu-24.04`, `24.0.1-jdk-headless-ubuntu-noble`, `24.0.1-jdk-headless-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/24_04/jdk-headless/Dockerfile) + +- [`jre-ubuntu`, `24-jre-ubuntu`, `24.0.1-jre-ubuntu`, `24-jre-ubuntu-noble`, `24-jre-ubuntu-24.04`, `jre-ubuntu-noble`, `jre-ubuntu-24.04`, `24.0.1-jre-ubuntu-noble`, `24.0.1-jre-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/24_04/jre/Dockerfile) + +- [`jre-headless-ubuntu`, `24-jre-headless-ubuntu`, `24.0.1-jre-headless-ubuntu`, `24-jre-headless-ubuntu-noble`, `24-jre-headless-ubuntu-24.04`, `jre-headless-ubuntu-noble`, `jre-headless-ubuntu-24.04`, `24.0.1-jre-headless-ubuntu-noble`, `24.0.1-jre-headless-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/24_04/jre-headless/Dockerfile) + +- [`ubuntu-jammy`, `ubuntu-22.04`, `24-ubuntu-jammy`, `24-ubuntu-22.04`, `24.0.1-ubuntu-jammy`, `24.0.1-ubuntu-22.04`, `24-jdk-ubuntu-jammy`, `24-jdk-ubuntu-22.04`, `jdk-ubuntu-jammy`, `jdk-ubuntu-22.04`, `24.0.1-jdk-ubuntu-jammy`, `24.0.1-jdk-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/22_04/jdk/Dockerfile) + +- [`24-jdk-headless-ubuntu-jammy`, `24-jdk-headless-ubuntu-22.04`, `jdk-headless-ubuntu-jammy`, `jdk-headless-ubuntu-22.04`, `24.0.1-jdk-headless-ubuntu-jammy`, `24.0.1-jdk-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/22_04/jdk-headless/Dockerfile) + +- [`24-jre-ubuntu-jammy`, `24-jre-ubuntu-22.04`, `jre-ubuntu-jammy`, `jre-ubuntu-22.04`, `24.0.1-jre-ubuntu-jammy`, `24.0.1-jre-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/22_04/jre/Dockerfile) + +- [`24-jre-headless-ubuntu-jammy`, `24-jre-headless-ubuntu-22.04`, `jre-headless-ubuntu-jammy`, `jre-headless-ubuntu-22.04`, `24.0.1-jre-headless-ubuntu-jammy`, `24.0.1-jre-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/22_04/jre-headless/Dockerfile) + +- [`ubuntu-focal`, `ubuntu-20.04`, `24-ubuntu-focal`, `24-ubuntu-20.04`, `24.0.1-ubuntu-focal`, `24.0.1-ubuntu-20.04`, `24-jdk-ubuntu-focal`, `24-jdk-ubuntu-20.04`, `jdk-ubuntu-focal`, `jdk-ubuntu-20.04`, `24.0.1-jdk-ubuntu-focal`, `24.0.1-jdk-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/20_04/jdk/Dockerfile) + +- [`24-jdk-headless-ubuntu-focal`, `24-jdk-headless-ubuntu-20.04`, `jdk-headless-ubuntu-focal`, `jdk-headless-ubuntu-20.04`, `24.0.1-jdk-headless-ubuntu-focal`, `24.0.1-jdk-headless-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/20_04/jdk-headless/Dockerfile) + +- [`24-jre-ubuntu-focal`, `24-jre-ubuntu-20.04`, `jre-ubuntu-focal`, `jre-ubuntu-20.04`, `24.0.1-jre-ubuntu-focal`, `24.0.1-jre-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/20_04/jre/Dockerfile) + +- [`24-jre-headless-ubuntu-focal`, `24-jre-headless-ubuntu-20.04`, `jre-headless-ubuntu-focal`, `jre-headless-ubuntu-20.04`, `24.0.1-jre-headless-ubuntu-focal`, `24.0.1-jre-headless-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/ubuntu/20_04/jre-headless/Dockerfile) + +- [`jdk-alpine`, `24-jdk-alpine`, `24.0.1-jdk-alpine`, `alpine-3.21`, `24-alpine-3.21`, `24.0.1-alpine-3.21`, `24-jdk-alpine-3.21`, `jdk-alpine-3.21`, `24.0.1-jdk-alpine-3.21`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/alpine/3_21/jdk/Dockerfile) + +- [`jre-alpine`, `24-jre-alpine`, `24.0.1-jre-alpine`, `24-jre-alpine-3.21`, `jre-alpine-3.21`, `24.0.1-jre-alpine-3.21`](https://github.com/SAP/SapMachine-infrastructure/blob/f812009dd9d683d710e00f3e9c6978c23c4da797/dockerfiles/24/alpine/3_21/jre/Dockerfile) + +- [`21`, `lts`, `21-jdk-ubuntu`, `lts-jdk-ubuntu`, `21.0.7`, `21.0.7-jdk-ubuntu`, `21-ubuntu-noble`, `21-ubuntu-24.04`, `lts-ubuntu-noble`, `lts-ubuntu-24.04`, `21.0.7-ubuntu-noble`, `21.0.7-ubuntu-24.04`, `21-jdk-ubuntu-noble`, `21-jdk-ubuntu-24.04`, `lts-jdk-ubuntu-noble`, `lts-jdk-ubuntu-24.04`, `21.0.7-jdk-ubuntu-noble`, `21.0.7-jdk-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/24_04/jdk/Dockerfile) + +- [`21-jdk-headless-ubuntu`, `lts-jdk-headless-ubuntu`, `21.0.7-jdk-headless-ubuntu`, `21-jdk-headless-ubuntu-noble`, `21-jdk-headless-ubuntu-24.04`, `lts-jdk-headless-ubuntu-noble`, `lts-jdk-headless-ubuntu-24.04`, `21.0.7-jdk-headless-ubuntu-noble`, `21.0.7-jdk-headless-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/24_04/jdk-headless/Dockerfile) + +- [`21-jre-ubuntu`, `lts-jre-ubuntu`, `21.0.7-jre-ubuntu`, `21-jre-ubuntu-noble`, `21-jre-ubuntu-24.04`, `lts-jre-ubuntu-noble`, `lts-jre-ubuntu-24.04`, `21.0.7-jre-ubuntu-noble`, `21.0.7-jre-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/24_04/jre/Dockerfile) + +- [`21-jre-headless-ubuntu`, `lts-jre-headless-ubuntu`, `21.0.7-jre-headless-ubuntu`, `21-jre-headless-ubuntu-noble`, `21-jre-headless-ubuntu-24.04`, `lts-jre-headless-ubuntu-noble`, `lts-jre-headless-ubuntu-24.04`, `21.0.7-jre-headless-ubuntu-noble`, `21.0.7-jre-headless-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/24_04/jre-headless/Dockerfile) + +- [`21-ubuntu-jammy`, `21-ubuntu-22.04`, `lts-ubuntu-jammy`, `lts-ubuntu-22.04`, `21.0.7-ubuntu-jammy`, `21.0.7-ubuntu-22.04`, `21-jdk-ubuntu-jammy`, `21-jdk-ubuntu-22.04`, `lts-jdk-ubuntu-jammy`, `lts-jdk-ubuntu-22.04`, `21.0.7-jdk-ubuntu-jammy`, `21.0.7-jdk-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/22_04/jdk/Dockerfile) + +- [`21-jdk-headless-ubuntu-jammy`, `21-jdk-headless-ubuntu-22.04`, `lts-jdk-headless-ubuntu-jammy`, `lts-jdk-headless-ubuntu-22.04`, `21.0.7-jdk-headless-ubuntu-jammy`, `21.0.7-jdk-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/22_04/jdk-headless/Dockerfile) + +- [`21-jre-ubuntu-jammy`, `21-jre-ubuntu-22.04`, `lts-jre-ubuntu-jammy`, `lts-jre-ubuntu-22.04`, `21.0.7-jre-ubuntu-jammy`, `21.0.7-jre-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/22_04/jre/Dockerfile) + +- [`21-jre-headless-ubuntu-jammy`, `21-jre-headless-ubuntu-22.04`, `lts-jre-headless-ubuntu-jammy`, `lts-jre-headless-ubuntu-22.04`, `21.0.7-jre-headless-ubuntu-jammy`, `21.0.7-jre-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/22_04/jre-headless/Dockerfile) + +- [`21-ubuntu-focal`, `21-ubuntu-20.04`, `lts-ubuntu-focal`, `lts-ubuntu-20.04`, `21.0.7-ubuntu-focal`, `21.0.7-ubuntu-20.04`, `21-jdk-ubuntu-focal`, `21-jdk-ubuntu-20.04`, `lts-jdk-ubuntu-focal`, `lts-jdk-ubuntu-20.04`, `21.0.7-jdk-ubuntu-focal`, `21.0.7-jdk-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/20_04/jdk/Dockerfile) + +- [`21-jdk-headless-ubuntu-focal`, `21-jdk-headless-ubuntu-20.04`, `lts-jdk-headless-ubuntu-focal`, `lts-jdk-headless-ubuntu-20.04`, `21.0.7-jdk-headless-ubuntu-focal`, `21.0.7-jdk-headless-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/20_04/jdk-headless/Dockerfile) + +- [`21-jre-ubuntu-focal`, `21-jre-ubuntu-20.04`, `lts-jre-ubuntu-focal`, `lts-jre-ubuntu-20.04`, `21.0.7-jre-ubuntu-focal`, `21.0.7-jre-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/20_04/jre/Dockerfile) + +- [`21-jre-headless-ubuntu-focal`, `21-jre-headless-ubuntu-20.04`, `lts-jre-headless-ubuntu-focal`, `lts-jre-headless-ubuntu-20.04`, `21.0.7-jre-headless-ubuntu-focal`, `21.0.7-jre-headless-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/ubuntu/20_04/jre-headless/Dockerfile) + +- [`21-jdk-alpine`, `lts-jdk-alpine`, `21.0.7-jdk-alpine`, `21-alpine-3.21`, `lts-alpine-3.21`, `21.0.7-alpine-3.21`, `21-jdk-alpine-3.21`, `lts-jdk-alpine-3.21`, `21.0.7-jdk-alpine-3.21`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/alpine/3_21/jdk/Dockerfile) + +- [`21-jre-alpine`, `lts-jre-alpine`, `21.0.7-jre-alpine`, `21-jre-alpine-3.21`, `lts-jre-alpine-3.21`, `21.0.7-jre-alpine-3.21`](https://github.com/SAP/SapMachine-infrastructure/blob/54b17adefafcdd1f5929dd7681d8b98ab4d86e4c/dockerfiles/21/alpine/3_21/jre/Dockerfile) + +- [`17`, `17-jdk-ubuntu`, `17.0.15`, `17.0.15-jdk-ubuntu`, `17-ubuntu-noble`, `17-ubuntu-24.04`, `17.0.15-ubuntu-noble`, `17.0.15-ubuntu-24.04`, `17-jdk-ubuntu-noble`, `17-jdk-ubuntu-24.04`, `17.0.15-jdk-ubuntu-noble`, `17.0.15-jdk-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/24_04/jdk/Dockerfile) + +- [`17-jdk-headless-ubuntu`, `17.0.15-jdk-headless-ubuntu`, `17-jdk-headless-ubuntu-noble`, `17-jdk-headless-ubuntu-24.04`, `17.0.15-jdk-headless-ubuntu-noble`, `17.0.15-jdk-headless-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/24_04/jdk-headless/Dockerfile) + +- [`17-jre-ubuntu`, `17.0.15-jre-ubuntu`, `17-jre-ubuntu-noble`, `17-jre-ubuntu-24.04`, `17.0.15-jre-ubuntu-noble`, `17.0.15-jre-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/24_04/jre/Dockerfile) + +- [`17-jre-headless-ubuntu`, `17.0.15-jre-headless-ubuntu`, `17-jre-headless-ubuntu-noble`, `17-jre-headless-ubuntu-24.04`, `17.0.15-jre-headless-ubuntu-noble`, `17.0.15-jre-headless-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/24_04/jre-headless/Dockerfile) + +- [`17-ubuntu-jammy`, `17-ubuntu-22.04`, `17.0.15-ubuntu-jammy`, `17.0.15-ubuntu-22.04`, `17-jdk-ubuntu-jammy`, `17-jdk-ubuntu-22.04`, `17.0.15-jdk-ubuntu-jammy`, `17.0.15-jdk-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/22_04/jdk/Dockerfile) + +- [`17-jdk-headless-ubuntu-jammy`, `17-jdk-headless-ubuntu-22.04`, `17.0.15-jdk-headless-ubuntu-jammy`, `17.0.15-jdk-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/22_04/jdk-headless/Dockerfile) + +- [`17-jre-ubuntu-jammy`, `17-jre-ubuntu-22.04`, `17.0.15-jre-ubuntu-jammy`, `17.0.15-jre-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/22_04/jre/Dockerfile) + +- [`17-jre-headless-ubuntu-jammy`, `17-jre-headless-ubuntu-22.04`, `17.0.15-jre-headless-ubuntu-jammy`, `17.0.15-jre-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/22_04/jre-headless/Dockerfile) + +- [`17-ubuntu-focal`, `17-ubuntu-20.04`, `17.0.15-ubuntu-focal`, `17.0.15-ubuntu-20.04`, `17-jdk-ubuntu-focal`, `17-jdk-ubuntu-20.04`, `17.0.15-jdk-ubuntu-focal`, `17.0.15-jdk-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/20_04/jdk/Dockerfile) + +- [`17-jdk-headless-ubuntu-focal`, `17-jdk-headless-ubuntu-20.04`, `17.0.15-jdk-headless-ubuntu-focal`, `17.0.15-jdk-headless-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/20_04/jdk-headless/Dockerfile) + +- [`17-jre-ubuntu-focal`, `17-jre-ubuntu-20.04`, `17.0.15-jre-ubuntu-focal`, `17.0.15-jre-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/20_04/jre/Dockerfile) + +- [`17-jre-headless-ubuntu-focal`, `17-jre-headless-ubuntu-20.04`, `17.0.15-jre-headless-ubuntu-focal`, `17.0.15-jre-headless-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/ubuntu/20_04/jre-headless/Dockerfile) + +- [`17-jdk-alpine`, `17.0.15-jdk-alpine`, `17-alpine-3.21`, `17.0.15-alpine-3.21`, `17-jdk-alpine-3.21`, `17.0.15-jdk-alpine-3.21`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/alpine/3_21/jdk/Dockerfile) + +- [`17-jre-alpine`, `17.0.15-jre-alpine`, `17-jre-alpine-3.21`, `17.0.15-jre-alpine-3.21`](https://github.com/SAP/SapMachine-infrastructure/blob/eda1e4d07cb6b70feef4d6192bcf09593bafc3dd/dockerfiles/17/alpine/3_21/jre/Dockerfile) + +- [`11`, `11-jdk-ubuntu`, `11.0.27`, `11.0.27-jdk-ubuntu`, `11-ubuntu-noble`, `11-ubuntu-24.04`, `11.0.27-ubuntu-noble`, `11.0.27-ubuntu-24.04`, `11-jdk-ubuntu-noble`, `11-jdk-ubuntu-24.04`, `11.0.27-jdk-ubuntu-noble`, `11.0.27-jdk-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/24_04/jdk/Dockerfile) + +- [`11-jdk-headless-ubuntu`, `11.0.27-jdk-headless-ubuntu`, `11-jdk-headless-ubuntu-noble`, `11-jdk-headless-ubuntu-24.04`, `11.0.27-jdk-headless-ubuntu-noble`, `11.0.27-jdk-headless-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/24_04/jdk-headless/Dockerfile) + +- [`11-jre-ubuntu`, `11.0.27-jre-ubuntu`, `11-jre-ubuntu-noble`, `11-jre-ubuntu-24.04`, `11.0.27-jre-ubuntu-noble`, `11.0.27-jre-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/24_04/jre/Dockerfile) + +- [`11-jre-headless-ubuntu`, `11.0.27-jre-headless-ubuntu`, `11-jre-headless-ubuntu-noble`, `11-jre-headless-ubuntu-24.04`, `11.0.27-jre-headless-ubuntu-noble`, `11.0.27-jre-headless-ubuntu-24.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/24_04/jre-headless/Dockerfile) + +- [`11-ubuntu-jammy`, `11-ubuntu-22.04`, `11.0.27-ubuntu-jammy`, `11.0.27-ubuntu-22.04`, `11-jdk-ubuntu-jammy`, `11-jdk-ubuntu-22.04`, `11.0.27-jdk-ubuntu-jammy`, `11.0.27-jdk-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/22_04/jdk/Dockerfile) + +- [`11-jdk-headless-ubuntu-jammy`, `11-jdk-headless-ubuntu-22.04`, `11.0.27-jdk-headless-ubuntu-jammy`, `11.0.27-jdk-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/22_04/jdk-headless/Dockerfile) + +- [`11-jre-ubuntu-jammy`, `11-jre-ubuntu-22.04`, `11.0.27-jre-ubuntu-jammy`, `11.0.27-jre-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/22_04/jre/Dockerfile) + +- [`11-jre-headless-ubuntu-jammy`, `11-jre-headless-ubuntu-22.04`, `11.0.27-jre-headless-ubuntu-jammy`, `11.0.27-jre-headless-ubuntu-22.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/22_04/jre-headless/Dockerfile) + +- [`11-ubuntu-focal`, `11-ubuntu-20.04`, `11.0.27-ubuntu-focal`, `11.0.27-ubuntu-20.04`, `11-jdk-ubuntu-focal`, `11-jdk-ubuntu-20.04`, `11.0.27-jdk-ubuntu-focal`, `11.0.27-jdk-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/20_04/jdk/Dockerfile) + +- [`11-jdk-headless-ubuntu-focal`, `11-jdk-headless-ubuntu-20.04`, `11.0.27-jdk-headless-ubuntu-focal`, `11.0.27-jdk-headless-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/20_04/jdk-headless/Dockerfile) + +- [`11-jre-ubuntu-focal`, `11-jre-ubuntu-20.04`, `11.0.27-jre-ubuntu-focal`, `11.0.27-jre-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/20_04/jre/Dockerfile) + +- [`11-jre-headless-ubuntu-focal`, `11-jre-headless-ubuntu-20.04`, `11.0.27-jre-headless-ubuntu-focal`, `11.0.27-jre-headless-ubuntu-20.04`](https://github.com/SAP/SapMachine-infrastructure/blob/b56fec3b73cca3045d10f608837dcc1d690123db/dockerfiles/11/ubuntu/20_04/jre-headless/Dockerfile) # Quick reference (cont.) @@ -58,11 +153,11 @@ WARNING: ### Overview -The image in this repository contains the SapMachine Java virtual machine (JVM). SapMachine is an OpenJDK based JVM that is build, quality tested and long-term supported by SAP. It is the default JVM on the [SAP Cloud Platform](https://cloudplatform.sap.com/index.html) and it is also supported as a [Standard JRE](https://github.com/cloudfoundry/java-buildpack/blob/master/docs/jre-sap_machine_jre.md) in the [Cloud Foundry Java Build Pack](https://github.com/cloudfoundry/java-buildpack). +SapMachine is a binary distribution of the [Open Java Development Kit (OpenJDK)](https://openjdk.org/). It is built, quality tested and long-term supported by SAP. -For more information see the [SapMachine website](https://sapmachine.io). +SapMachine is the default Java runtime for [SAP's Business Technology Platform](https://www.sap.com/products/technology-platform.html) and it is also supported as a [Standard JRE](https://github.com/cloudfoundry/java-buildpack/blob/master/docs/jre-sap_machine_jre.md) in the [Cloud Foundry Java Build Pack](https://github.com/cloudfoundry/java-buildpack). -The SapMachine image supports the x86/64 architecture. +For more information see the [SapMachine website](https://sapmachine.io). Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. @@ -93,6 +188,24 @@ docker build -t myapp . docker run -it --rm myapp ``` +# Image Variants + +The `sapmachine` images come in many flavors, each designed for a specific use case. + +## `sapmachine:` + +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. + +Some of these tags may have names like 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. + +## `sapmachine:-alpine` + +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. + +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. + +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). + # License The Dockerfiles and associated scripts are licensed under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). diff --git a/sapmachine/content.md b/sapmachine/content.md index 414c058bb729..fb3758f08dce 100644 --- a/sapmachine/content.md +++ b/sapmachine/content.md @@ -1,10 +1,10 @@ ### Overview -The image in this repository contains the SapMachine Java virtual machine (JVM). SapMachine is an OpenJDK based JVM that is build, quality tested and long-term supported by SAP. It is the default JVM on the [SAP Cloud Platform](https://cloudplatform.sap.com/index.html) and it is also supported as a [Standard JRE](https://github.com/cloudfoundry/java-buildpack/blob/master/docs/jre-sap_machine_jre.md) in the [Cloud Foundry Java Build Pack](https://github.com/cloudfoundry/java-buildpack). +SapMachine is a binary distribution of the [Open Java Development Kit (OpenJDK)](https://openjdk.org/). It is built, quality tested and long-term supported by SAP. -For more information see the [SapMachine website](https://sapmachine.io). +SapMachine is the default Java runtime for [SAP's Business Technology Platform](https://www.sap.com/products/technology-platform.html) and it is also supported as a [Standard JRE](https://github.com/cloudfoundry/java-buildpack/blob/master/docs/jre-sap_machine_jre.md) in the [Cloud Foundry Java Build Pack](https://github.com/cloudfoundry/java-buildpack). -The SapMachine image supports the x86/64 architecture. +For more information see the [SapMachine website](https://sapmachine.io). Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. diff --git a/sapmachine/metadata.json b/sapmachine/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/sapmachine/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/satosa/README-short.txt b/satosa/README-short.txt index 50d0e08f9866..9027c4696413 100644 --- a/satosa/README-short.txt +++ b/satosa/README-short.txt @@ -1 +1 @@ -SATOSA translates between authentication protocols such as SAML2, OpenID Connect, and OAuth2. +DEPRECATED; SATOSA translates between auth protocols such as SAML2, OpenID Connect, and OAuth2. diff --git a/satosa/README.md b/satosa/README.md index c86aedcfa741..b83ac6f68d7d 100644 --- a/satosa/README.md +++ b/satosa/README.md @@ -14,6 +14,10 @@ WARNING: --> +# **DEPRECATION NOTICE** + +This image is deprecated due to maintainer inactivity (last updated Dec 2023; [docker-library/official-images#15964](https://github.com/docker-library/official-images/pull/15964)). + # Quick reference - **Maintained by**: @@ -28,13 +32,15 @@ WARNING: ## Simple Tags -- [`8.2.0-bullseye`, `8.2-bullseye`, `8-bullseye`, `bullseye`](https://github.com/IdentityPython/satosa-docker/blob/a4ef0077f546b7e9be444720b14f2cba14f8f2eb/8.2/bullseye/Dockerfile) -- [`8.2.0-alpine3.16`, `8.2-alpine3.16`, `8-alpine3.16`, `alpine3.16`, `8.2.0-alpine`, `8.2-alpine`, `8-alpine`, `alpine`](https://github.com/IdentityPython/satosa-docker/blob/24aabb5cd0330eab9c8baeddf4fc8fcf0d714d3b/8.2/alpine3.16/Dockerfile) +- [`8.4.0-bookworm`, `8.4-bookworm`, `8-bookworm`, `bookworm`](https://github.com/IdentityPython/satosa-docker/blob/69038a84d541717d66420f3ad8ec7c9da22c91b4/8.4/bookworm/Dockerfile) + +- [`8.4.0-alpine3.19`, `8.4-alpine3.19`, `8-alpine3.19`, `alpine3.19`, `8.4.0-alpine`, `8.4-alpine`, `8-alpine`, `alpine`](https://github.com/IdentityPython/satosa-docker/blob/74a847396f1190ec26679fc3bf09ffcc42d2e999/8.4/alpine3.19/Dockerfile) ## Shared Tags -- `8.2.0`, `8.2`, `8`, `latest`: - - [`8.2.0-bullseye`](https://github.com/IdentityPython/satosa-docker/blob/a4ef0077f546b7e9be444720b14f2cba14f8f2eb/8.2/bullseye/Dockerfile) +- `8.4.0`, `8.4`, `8`, `latest`: + + - [`8.4.0-bookworm`](https://github.com/IdentityPython/satosa-docker/blob/69038a84d541717d66420f3ad8ec7c9da22c91b4/8.4/bookworm/Dockerfile) # Quick reference (cont.) @@ -42,7 +48,7 @@ WARNING: [https://github.com/IdentityPython/satosa-docker/issues](https://github.com/IdentityPython/satosa-docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/satosa/), [`arm32v5`](https://hub.docker.com/r/arm32v5/satosa/), [`arm32v6`](https://hub.docker.com/r/arm32v6/satosa/), [`arm32v7`](https://hub.docker.com/r/arm32v7/satosa/), [`arm64v8`](https://hub.docker.com/r/arm64v8/satosa/), [`i386`](https://hub.docker.com/r/i386/satosa/), [`ppc64le`](https://hub.docker.com/r/ppc64le/satosa/), [`s390x`](https://hub.docker.com/r/s390x/satosa/) + [`amd64`](https://hub.docker.com/r/amd64/satosa/), [`arm32v7`](https://hub.docker.com/r/arm32v7/satosa/), [`arm64v8`](https://hub.docker.com/r/arm64v8/satosa/), [`i386`](https://hub.docker.com/r/i386/satosa/), [`ppc64le`](https://hub.docker.com/r/ppc64le/satosa/) - **Published image artifact details**: [repo-info repo's `repos/satosa/` directory](https://github.com/docker-library/repo-info/blob/master/repos/satosa) ([history](https://github.com/docker-library/repo-info/commits/master/repos/satosa)) @@ -119,7 +125,7 @@ SATOSA uses encrypted cookies to track the progress of an authentication flow. T ### `SAML2_BACKEND_DISCO_SRV` -When part of a SAML2 multilateral federation, SATOSA will ask the user to choose an identity provider using a SAML discovery service. This environment variable optionally sets the the discovery service URL, which defaults to [SeamlessAccess](https://seamlessaccess.org/). +When part of a SAML2 multilateral federation, SATOSA will ask the user to choose an identity provider using a SAML discovery service. This environment variable optionally sets the discovery service URL, which defaults to [SeamlessAccess](https://seamlessaccess.org/). ### `SAML2_BACKEND_CERT` and `SAML2_BACKEND_KEY` @@ -137,7 +143,7 @@ The `satosa` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like 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. +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. ## `satosa:-alpine` diff --git a/satosa/content.md b/satosa/content.md index f00ab9e50c8b..fcba08015cf4 100644 --- a/satosa/content.md +++ b/satosa/content.md @@ -62,7 +62,7 @@ SATOSA uses encrypted cookies to track the progress of an authentication flow. T ### `SAML2_BACKEND_DISCO_SRV` -When part of a SAML2 multilateral federation, SATOSA will ask the user to choose an identity provider using a SAML discovery service. This environment variable optionally sets the the discovery service URL, which defaults to [SeamlessAccess](https://seamlessaccess.org/). +When part of a SAML2 multilateral federation, SATOSA will ask the user to choose an identity provider using a SAML discovery service. This environment variable optionally sets the discovery service URL, which defaults to [SeamlessAccess](https://seamlessaccess.org/). ### `SAML2_BACKEND_CERT` and `SAML2_BACKEND_KEY` diff --git a/satosa/deprecated.md b/satosa/deprecated.md new file mode 100644 index 000000000000..41f6be58b34c --- /dev/null +++ b/satosa/deprecated.md @@ -0,0 +1 @@ +This image is deprecated due to maintainer inactivity (last updated Dec 2023; [docker-library/official-images#15964](https://github.com/docker-library/official-images/pull/15964)). diff --git a/satosa/metadata.json b/satosa/metadata.json new file mode 100644 index 000000000000..538442b9d959 --- /dev/null +++ b/satosa/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "api-management" + ] + } +} diff --git a/scratch/metadata.json b/scratch/metadata.json new file mode 100644 index 000000000000..e90624aca4ca --- /dev/null +++ b/scratch/metadata.json @@ -0,0 +1,5 @@ +{ + "hub": { + "categories": [] + } +} diff --git a/silverpeas/README.md b/silverpeas/README.md index 166ea0b8ea03..b994f3adf9db 100644 --- a/silverpeas/README.md +++ b/silverpeas/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`6.3.1`, `latest`](https://github.com/Silverpeas/docker-silverpeas-prod/blob/c1fa483e14efa07680009a9f177b94072ab24827/Dockerfile) -- [`6.2.3-b1`](https://github.com/Silverpeas/docker-silverpeas-prod/blob/9714dcc94eb558508f085835a329a44f5c3cb52e/Dockerfile) +- [`6.4.3`, `latest`](https://github.com/Silverpeas/docker-silverpeas-prod/blob/79cad3dae9a20fb2fb404fba5641c5921d410112/Dockerfile) + +- [`6.3.6`](https://github.com/Silverpeas/docker-silverpeas-prod/blob/f0a4c728794ad0e1f06de88cbea9599489634bf6/Dockerfile) # Quick reference (cont.) diff --git a/silverpeas/metadata.json b/silverpeas/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/silverpeas/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/sl/README-short.txt b/sl/README-short.txt deleted file mode 100644 index 76594132e25f..000000000000 --- a/sl/README-short.txt +++ /dev/null @@ -1 +0,0 @@ -Official containers for Scientific Linux(SL) diff --git a/sl/README.md b/sl/README.md deleted file mode 100644 index 25c1d7fc6e99..000000000000 --- a/sl/README.md +++ /dev/null @@ -1,131 +0,0 @@ - - -# Quick reference - -- **Maintained by**: - [Scientific Linux Development Team](https://github.com/scientificlinux/sl-docker) - -- **Where to get help**: - [SL Faq](https://www.scientificlinux.org/documentation/faq) or [Email Lists](https://www.scientificlinux.org/community) - -# Supported tags and respective `Dockerfile` links - -- [`7`, `latest`](https://github.com/scientificlinux/sl-docker/blob/bf1a75fd29d02465952d829b66a5f9081113555e/sl7/Dockerfile) - -# Quick reference (cont.) - -- **Where to file issues**: - [https://github.com/scientificlinux/sl-docker/issues](https://github.com/scientificlinux/sl-docker/issues?q=) - -- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/sl/) - -- **Published image artifact details**: - [repo-info repo's `repos/sl/` directory](https://github.com/docker-library/repo-info/blob/master/repos/sl) ([history](https://github.com/docker-library/repo-info/commits/master/repos/sl)) - (image metadata, transfer size, etc) - -- **Image updates**: - [official-images repo's `library/sl` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fsl) - [official-images repo's `library/sl` file](https://github.com/docker-library/official-images/blob/master/library/sl) ([history](https://github.com/docker-library/official-images/commits/master/library/sl)) - -- **Source of this description**: - [docs repo's `sl/` directory](https://github.com/docker-library/docs/tree/master/sl) ([history](https://github.com/docker-library/docs/commits/master/sl)) - -# Scientific Linux - -![logo](https://raw.githubusercontent.com/docker-library/docs/9d3c9d2eb97c9558ed53dc5f7f837654d455f9e5/sl/logo.png) - -These images contain [Scientific Linux](http://www.scientificlinux.org/). - -## About Scientific Linux - -Scientific Linux is a [Fermilab](http://fnal.gov/) sponsored project. Our primary user base is within the High Energy and High Intensity Physics community. However, our users come from a wide variety of industries with various use cases all over the globe – and sometimes off of it! - -Our Mission: - -> Driven by Fermilab's scientific mission and focusing on the changing needs of experimental facilities, Scientific Linux should provide a world class environment for scientific computing needs. - -Scientific Linux is a rebuild of Red Hat Enterprise Linux (property of Red Hat Inc. NYSE:RHT). - -Please see [About Scientific Linux](http://www.scientificlinux.org/about/) and [Why Make Scientific Linux](http://www.scientificlinux.org/about/why-make-scientific-linux/) for more information. - -## Container Tags - -A tag will be provided for each of the [maintained major releases](http://www.scientificlinux.org/downloads/sl-versions/) of Scientific Linux (`6`, `7`). - -The `latest` tag will track the highest version numbered release of Scientific Linux. - -Updated images will be released roughly once per month. - -## Build Process - -The root filesystem for these docker images is built on our internal build system. - -## Docker, overlayfs, and yum - -Recent Docker versions support the [overlayfs](https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/) backend, which is enabled by default on most distros supporting it from Docker 1.13 onwards. On SL 6 and 7, that backend requires `yum-plugin-ovl` to be installed and enabled, which it is in our containers. Make it sure you retain the `plugins=1` option in `/etc/yum.conf` if you update that file; otherwise, you may encounter errors related to rpmdb checksum failure - see [Docker ticket 10180](https://github.com/docker/docker/issues/10180) for more details. - -## Example Usage - -You can try out the containers via: - -```console -$ docker pull sl -$ docker run -it sl:6 cat /etc/redhat-release -$ docker run -it sl:7 cat /etc/redhat-release -``` - -## Enabling systemd in SL7 - -The SL7 docker container ships with systemd mostly functional. You can build a SL7 systemd enabled container with the following Dockerfile. - -In order to run a container with systemd, you will need to mount the cgroups volumes from the host. - -```Dockerfile -# Example SL7 systemd Dockerfile -FROM sl:7 -ENV container docker -### This example enables httpd via systemd within the container -RUN yum -y install httpd && yum clean all && systemctl enable httpd.service -EXPOSE 80 -### End of example commands for httpd via systemd -VOLUME [ "/sys/fs/cgroup" ] -CMD ["/usr/sbin/init"] -``` - -You can build and run this example (with apache) via: - -```console -$ docker build --rm -t local/mycontainer your/path -$ docker run -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 local/mycontainer -``` - -Which will run systemd within the container in a limited context. - -It is recommended that you install any relevant [OCI hooks](https://www.opencontainers.org/) for your container host - such as `oci-register-machine` or `oci-systemd-hook`. - -Some container hosts must add `--tmpfs /run` to the `docker run` command. - -# License - -By default the SL docker images do not include documentation or license files. If you require them, please remove `tsflags=nodocs` from `/etc/yum.conf` and run `yum reinstall mypackage` to recieve the documentation. - -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). - -Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `sl/` directory](https://github.com/docker-library/repo-info/tree/master/repos/sl). - -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. diff --git a/sl/content.md b/sl/content.md deleted file mode 100644 index f2b99b8ff80a..000000000000 --- a/sl/content.md +++ /dev/null @@ -1,74 +0,0 @@ -# Scientific Linux - -%%LOGO%% - -These images contain [Scientific Linux](http://www.scientificlinux.org/). - -## About Scientific Linux - -Scientific Linux is a [Fermilab](http://fnal.gov/) sponsored project. Our primary user base is within the High Energy and High Intensity Physics community. However, our users come from a wide variety of industries with various use cases all over the globe – and sometimes off of it! - -Our Mission: - -> Driven by Fermilab's scientific mission and focusing on the changing needs of experimental facilities, Scientific Linux should provide a world class environment for scientific computing needs. - -Scientific Linux is a rebuild of Red Hat Enterprise Linux (property of Red Hat Inc. NYSE:RHT). - -Please see [About Scientific Linux](http://www.scientificlinux.org/about/) and [Why Make Scientific Linux](http://www.scientificlinux.org/about/why-make-scientific-linux/) for more information. - -## Container Tags - -A tag will be provided for each of the [maintained major releases](http://www.scientificlinux.org/downloads/sl-versions/) of Scientific Linux (`6`, `7`). - -The `latest` tag will track the highest version numbered release of Scientific Linux. - -Updated images will be released roughly once per month. - -## Build Process - -The root filesystem for these docker images is built on our internal build system. - -## Docker, overlayfs, and yum - -Recent Docker versions support the [overlayfs](https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/) backend, which is enabled by default on most distros supporting it from Docker 1.13 onwards. On SL 6 and 7, that backend requires `yum-plugin-ovl` to be installed and enabled, which it is in our containers. Make it sure you retain the `plugins=1` option in `/etc/yum.conf` if you update that file; otherwise, you may encounter errors related to rpmdb checksum failure - see [Docker ticket 10180](https://github.com/docker/docker/issues/10180) for more details. - -## Example Usage - -You can try out the containers via: - -```console -$ docker pull %%IMAGE%% -$ docker run -it %%IMAGE%%:6 cat /etc/redhat-release -$ docker run -it %%IMAGE%%:7 cat /etc/redhat-release -``` - -## Enabling systemd in SL7 - -The SL7 docker container ships with systemd mostly functional. You can build a SL7 systemd enabled container with the following Dockerfile. - -In order to run a container with systemd, you will need to mount the cgroups volumes from the host. - -```Dockerfile -# Example SL7 systemd Dockerfile -FROM %%IMAGE%%:7 -ENV container docker -### This example enables httpd via systemd within the container -RUN yum -y install httpd && yum clean all && systemctl enable httpd.service -EXPOSE 80 -### End of example commands for httpd via systemd -VOLUME [ "/sys/fs/cgroup" ] -CMD ["/usr/sbin/init"] -``` - -You can build and run this example (with apache) via: - -```console -$ docker build --rm -t local/mycontainer your/path -$ docker run -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 local/mycontainer -``` - -Which will run systemd within the container in a limited context. - -It is recommended that you install any relevant [OCI hooks](https://www.opencontainers.org/) for your container host - such as `oci-register-machine` or `oci-systemd-hook`. - -Some container hosts must add `--tmpfs /run` to the `docker run` command. diff --git a/sl/get-help.md b/sl/get-help.md deleted file mode 100644 index 3f914aef77d5..000000000000 --- a/sl/get-help.md +++ /dev/null @@ -1 +0,0 @@ -[SL Faq](https://www.scientificlinux.org/documentation/faq) or [Email Lists](https://www.scientificlinux.org/community) diff --git a/sl/github-repo b/sl/github-repo deleted file mode 100644 index 54178e3a5660..000000000000 --- a/sl/github-repo +++ /dev/null @@ -1 +0,0 @@ -https://github.com/scientificlinux/sl-docker diff --git a/sl/license.md b/sl/license.md deleted file mode 100644 index cb3f67d4196a..000000000000 --- a/sl/license.md +++ /dev/null @@ -1 +0,0 @@ -By default the SL docker images do not include documentation or license files. If you require them, please remove `tsflags=nodocs` from `/etc/yum.conf` and run `yum reinstall mypackage` to recieve the documentation. diff --git a/sl/logo.png b/sl/logo.png deleted file mode 100644 index 01ac3333cc7d..000000000000 Binary files a/sl/logo.png and /dev/null differ diff --git a/sl/maintainer.md b/sl/maintainer.md deleted file mode 100644 index 43e37b044a8d..000000000000 --- a/sl/maintainer.md +++ /dev/null @@ -1 +0,0 @@ -[Scientific Linux Development Team](%%GITHUB-REPO%%) diff --git a/solr/README-short.txt b/solr/README-short.txt index 257a196c62fd..816408c133ec 100644 --- a/solr/README-short.txt +++ b/solr/README-short.txt @@ -1 +1 @@ -Apache Solr is the popular, blazing-fast, open source search platform built on Apache Lucene™. +Solr is the blazing-fast, open source, multi-modal search platform built on Apache Lucene. diff --git a/solr/README.md b/solr/README.md index 8dae95c9d744..ab2d496e4958 100644 --- a/solr/README.md +++ b/solr/README.md @@ -24,15 +24,17 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`9.4.0`, `9.4`, `9`, `latest`](https://github.com/apache/solr-docker/blob/1d59ea67c3e3cba85e80badb65ff0a63f9e6789c/9.4/Dockerfile) -- [`9.4.0-slim`, `9.4-slim`, `9-slim`, `slim`](https://github.com/apache/solr-docker/blob/1d59ea67c3e3cba85e80badb65ff0a63f9e6789c/9.4-slim/Dockerfile) -- [`9.3.0`, `9.3`](https://github.com/apache/solr-docker/blob/1d59ea67c3e3cba85e80badb65ff0a63f9e6789c/9.3/Dockerfile) -- [`9.3.0-slim`, `9.3-slim`](https://github.com/apache/solr-docker/blob/1d59ea67c3e3cba85e80badb65ff0a63f9e6789c/9.3-slim/Dockerfile) -- [`9.2.1`, `9.2`](https://github.com/apache/solr-docker/blob/1d59ea67c3e3cba85e80badb65ff0a63f9e6789c/9.2/Dockerfile) -- [`9.1.1`, `9.1`](https://github.com/apache/solr-docker/blob/1d59ea67c3e3cba85e80badb65ff0a63f9e6789c/9.1/Dockerfile) -- [`9.0.0`, `9.0`](https://github.com/apache/solr-docker/blob/1d59ea67c3e3cba85e80badb65ff0a63f9e6789c/9.0/Dockerfile) -- [`8.11.2`, `8.11`, `8`](https://github.com/apache/solr-docker/blob/1d59ea67c3e3cba85e80badb65ff0a63f9e6789c/8.11/Dockerfile) -- [`8.11.2-slim`, `8.11-slim`, `8-slim`](https://github.com/apache/solr-docker/blob/1d59ea67c3e3cba85e80badb65ff0a63f9e6789c/8.11-slim/Dockerfile) +- [`9.8.1`, `9.8`, `9`, `latest`](https://github.com/apache/solr-docker/blob/fd6589c6455c184356b93880265f17c645840405/9.8/Dockerfile) + +- [`9.8.1-slim`, `9.8-slim`, `9-slim`, `slim`](https://github.com/apache/solr-docker/blob/fd6589c6455c184356b93880265f17c645840405/9.8-slim/Dockerfile) + +- [`9.7.0`, `9.7`](https://github.com/apache/solr-docker/blob/cabde2a16c99aa974e1882df2c55ca17eab0bd17/9.7/Dockerfile) + +- [`9.7.0-slim`, `9.7-slim`](https://github.com/apache/solr-docker/blob/cabde2a16c99aa974e1882df2c55ca17eab0bd17/9.7-slim/Dockerfile) + +- [`8.11.4`, `8.11`, `8`](https://github.com/apache/solr-docker/blob/f11dfe66709370492d5b7b251d5eba5d70b8301d/8.11/Dockerfile) + +- [`8.11.4-slim`, `8.11-slim`, `8-slim`](https://github.com/apache/solr-docker/blob/f11dfe66709370492d5b7b251d5eba5d70b8301d/8.11-slim/Dockerfile) # Quick reference (cont.) @@ -40,7 +42,7 @@ WARNING: [The Solr Users mailing list](https://solr.apache.org/community.html#mailing-lists-chat) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/solr/), [`arm32v7`](https://hub.docker.com/r/arm32v7/solr/), [`arm64v8`](https://hub.docker.com/r/arm64v8/solr/), [`ppc64le`](https://hub.docker.com/r/ppc64le/solr/), [`s390x`](https://hub.docker.com/r/s390x/solr/) + [`amd64`](https://hub.docker.com/r/amd64/solr/), [`arm64v8`](https://hub.docker.com/r/arm64v8/solr/), [`ppc64le`](https://hub.docker.com/r/ppc64le/solr/), [`s390x`](https://hub.docker.com/r/s390x/solr/) - **Published image artifact details**: [repo-info repo's `repos/solr/` directory](https://github.com/docker-library/repo-info/blob/master/repos/solr) ([history](https://github.com/docker-library/repo-info/commits/master/repos/solr)) @@ -55,7 +57,7 @@ WARNING: # What is Solr? -Solr is the popular, blazing fast, open source NoSQL search platform from the Apache Lucene project. Its major features include powerful full-text search, hit highlighting, faceted search, dynamic clustering, database integration, rich document handling, and geospatial search. Solr is highly scalable, providing fault tolerant distributed search and indexing, and powers the search and navigation features of many of the world's largest internet sites. +Solr is the blazing-fast, open source, multi-modal search platform built on Apache Lucene. It powers full-text, vector, analytics, and geospatial search at many of the world's largest organizations. Other major features include Kubernetes integration, streaming, highlighting, faceting, and spellchecking. Learn more on [Apache Solr homepage](http://solr.apache.org/) and in the [Apache Solr Reference Guide](https://solr.apache.org/guide/). @@ -83,16 +85,6 @@ Please direct any usage questions to the [Solr users mailing list](https://solr. This project was started in 2015 by [Martijn Koster](https://github.com/makuk66) in the [github.com/docker-solr/docker-solr](https://github.com/docker-solr/docker-solr) repository. In 2019, the maintainership and copyright was transferred to the Apache Solr project. Many thanks to Martijn for all your contributions over the years! -# NOTE: Not vulnerable to Log4J 2 "Log4shell" - -Some Docker images *were* vulnerable to one of a pair of vulnerabilities in Log4J 2. But we have mitigated *[supported](https://hub.docker.com/_/solr?tab=tags)* images (and some others) and re-published them. You may need to re-pull the image you are using. For those images prior to 8.11.1, Solr is using a popular technique to mitigate the problem -- setting `log4j2.formatMsgNoLookups`. The Solr maintainers have deemed this adequate based specifically on how Solr uses logging; it won't be adequate for all projects that use Log4J. Scanning software might alert you to the presence of an older Log4J JAR file, however it can't know if your software (Solr) uses the artifacts in a vulnerable way. To validate the mitigation being in place, look for `-Dlog4j2.formatMsgNoLookups` in the Args section of Solr's front admin screen. As of Solr 8.11.1, Solr is using Log4J 2.16.0. - -References: - -- [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228): Solr *was* vulnerable to this. -- [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046): Solr *never was* vulnerable to this. -- [Solr security bulletin](https://solr.apache.org/security.html#apache-solr-affected-by-apache-log4j-cve-2021-44228) - # Image Variants The `solr` images come in many flavors, each designed for a specific use case. diff --git a/solr/content.md b/solr/content.md index 2bc885d95d65..3333462df5b4 100644 --- a/solr/content.md +++ b/solr/content.md @@ -1,6 +1,6 @@ # What is Solr? -Solr is the popular, blazing fast, open source NoSQL search platform from the Apache Lucene project. Its major features include powerful full-text search, hit highlighting, faceted search, dynamic clustering, database integration, rich document handling, and geospatial search. Solr is highly scalable, providing fault tolerant distributed search and indexing, and powers the search and navigation features of many of the world's largest internet sites. +Solr is the blazing-fast, open source, multi-modal search platform built on Apache Lucene. It powers full-text, vector, analytics, and geospatial search at many of the world's largest organizations. Other major features include Kubernetes integration, streaming, highlighting, faceting, and spellchecking. Learn more on [Apache Solr homepage](http://solr.apache.org/) and in the [Apache Solr Reference Guide](https://solr.apache.org/guide/). @@ -27,13 +27,3 @@ Please direct any usage questions to the [Solr users mailing list](https://solr. # History This project was started in 2015 by [Martijn Koster](https://github.com/makuk66) in the [github.com/docker-solr/docker-solr](https://github.com/docker-solr/docker-solr) repository. In 2019, the maintainership and copyright was transferred to the Apache Solr project. Many thanks to Martijn for all your contributions over the years! - -# NOTE: Not vulnerable to Log4J 2 "Log4shell" - -Some Docker images *were* vulnerable to one of a pair of vulnerabilities in Log4J 2. But we have mitigated *[supported](https://hub.docker.com/_/solr?tab=tags)* images (and some others) and re-published them. You may need to re-pull the image you are using. For those images prior to 8.11.1, Solr is using a popular technique to mitigate the problem -- setting `log4j2.formatMsgNoLookups`. The Solr maintainers have deemed this adequate based specifically on how Solr uses logging; it won't be adequate for all projects that use Log4J. Scanning software might alert you to the presence of an older Log4J JAR file, however it can't know if your software (Solr) uses the artifacts in a vulnerable way. To validate the mitigation being in place, look for `-Dlog4j2.formatMsgNoLookups` in the Args section of Solr's front admin screen. As of Solr 8.11.1, Solr is using Log4J 2.16.0. - -References: - -- [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228): Solr *was* vulnerable to this. -- [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046): Solr *never was* vulnerable to this. -- [Solr security bulletin](https://solr.apache.org/security.html#apache-solr-affected-by-apache-log4j-cve-2021-44228) diff --git a/solr/metadata.json b/solr/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/solr/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +} diff --git a/sonarqube/README-short.txt b/sonarqube/README-short.txt index d1147e9c9c88..bf41551a0a53 100644 --- a/sonarqube/README-short.txt +++ b/sonarqube/README-short.txt @@ -1 +1 @@ -SonarQube is an open source platform for continuous inspection of code quality. \ No newline at end of file +Official images for SonarQube, code analysis tool for code quality and security diff --git a/sonarqube/README.md b/sonarqube/README.md index d65ffcc8e001..503f1552a4e1 100644 --- a/sonarqube/README.md +++ b/sonarqube/README.md @@ -24,16 +24,33 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`9.9.3-community`, `9.9-community`, `9-community`, `lts`, `lts-community`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/9/community/Dockerfile) -- [`9.9.3-developer`, `9.9-developer`, `9-developer`, `lts-developer`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/9/developer/Dockerfile) -- [`9.9.3-enterprise`, `9.9-enterprise`, `9-enterprise`, `lts-enterprise`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/9/enterprise/Dockerfile) -- [`9.9.3-datacenter-app`, `9.9-datacenter-app`, `9-datacenter-app`, `lts-datacenter-app`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/9/datacenter/app/Dockerfile) -- [`9.9.3-datacenter-search`, `9.9-datacenter-search`, `9-datacenter-search`, `lts-datacenter-search`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/9/datacenter/search/Dockerfile) -- [`10.3.0-community`, `10.3-community`, `10-community`, `community`, `latest`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/10/community/Dockerfile) -- [`10.3.0-developer`, `10.3-developer`, `10-developer`, `developer`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/10/developer/Dockerfile) -- [`10.3.0-enterprise`, `10.3-enterprise`, `10-enterprise`, `enterprise`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/10/enterprise/Dockerfile) -- [`10.3.0-datacenter-app`, `10.3-datacenter-app`, `10-datacenter-app`, `datacenter-app`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/10/datacenter/app/Dockerfile) -- [`10.3.0-datacenter-search`, `10.3-datacenter-search`, `10-datacenter-search`, `datacenter-search`](https://github.com/SonarSource/docker-sonarqube/blob/242f073026e8d9368f72f83c6a2dbd368299121b/10/datacenter/search/Dockerfile) +- [`2025.3.0-developer`, `2025.3-developer`, `developer`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/2025/developer/Dockerfile) + +- [`2025.3.0-enterprise`, `2025.3-enterprise`, `enterprise`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/2025/enterprise/Dockerfile) + +- [`2025.3.0-datacenter-app`, `2025.3-datacenter-app`, `datacenter-app`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/2025/datacenter/app/Dockerfile) + +- [`2025.3.0-datacenter-search`, `2025.3-datacenter-search`, `datacenter-search`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/2025/datacenter/search/Dockerfile) + +- [`2025.1.2-developer`, `2025.1-developer`, `2025-lta-developer`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/2025.1/developer/Dockerfile) + +- [`2025.1.2-enterprise`, `2025.1-enterprise`, `2025-lta-enterprise`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/2025.1/enterprise/Dockerfile) + +- [`2025.1.2-datacenter-app`, `2025.1-datacenter-app`, `2025-lta-datacenter-app`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/2025.1/datacenter/app/Dockerfile) + +- [`2025.1.2-datacenter-search`, `2025.1-datacenter-search`, `2025-lta-datacenter-search`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/2025.1/datacenter/search/Dockerfile) + +- [`25.6.0.109173-community`, `community`, `latest`](https://github.com/SonarSource/docker-sonarqube/blob/13051010fbfba3fe366f6ca2ede1b8551fa4c251/community-build/Dockerfile) + +- [`9.9.8-community`, `9.9-community`, `9-community`, `lts`, `lts-community`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/9/community/Dockerfile) + +- [`9.9.8-developer`, `9.9-developer`, `9-developer`, `lts-developer`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/9/developer/Dockerfile) + +- [`9.9.9-enterprise`, `9.9-enterprise`, `9-enterprise`, `lts-enterprise`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/9/enterprise/Dockerfile) + +- [`9.9.9-datacenter-app`, `9.9-datacenter-app`, `9-datacenter-app`, `lts-datacenter-app`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/9/datacenter/app/Dockerfile) + +- [`9.9.9-datacenter-search`, `9.9-datacenter-search`, `9-datacenter-search`, `lts-datacenter-search`](https://github.com/SonarSource/docker-sonarqube/blob/f36d73cab148e76cd0dae6c650f0273676522240/9/datacenter/search/Dockerfile) # Quick reference (cont.) @@ -54,15 +71,17 @@ WARNING: - **Source of this description**: [docs repo's `sonarqube/` directory](https://github.com/docker-library/docs/tree/master/sonarqube) ([history](https://github.com/docker-library/docs/commits/master/sonarqube)) -# What is SonarQube? +# What is `sonarqube`? -[SonarQube](https://www.sonarqube.org/) is the leading tool for continuously inspecting the Code Quality and Security of your codebases, and guiding development teams during Code Reviews. Covering 27 programming languages, while pairing-up with your existing software pipeline, SonarQube provides clear remediation guidance for developers to understand and fix issues, and for teams overall to deliver better and safer software. With over 225,000 deployments helping small development teams as well as global organizations, SonarQube provides the means for all teams and companies around the world to own and impact their Code Quality and Security. +`sonarqube` Docker repository stores the official Sonar images for SonarQube Server and SonarQube Community Build. -![logo](https://raw.githubusercontent.com/docker-library/docs/84479f149eb7d748d5dc057665eb96f923e60dc1/sonarqube/logo.png) +[SonarQube Server](https://www.sonarsource.com/products/sonarqube/) (formerly SonarQube) is an on-premise analysis tool designed to detect quality and security issues in 30+ languages, frameworks, and IaC platforms. The solution also provides fix recommendations leveraging AI with Sonar's AI CodeFix capability. By integrating directly with your CI pipeline or on one of the supported DevOps platforms, your code is checked against an extensive set of rules that cover many attributes of code, such as maintainability, reliability, and security issues on each merge/pull request. -# How to use this image +[SonarQube Community Build](https://www.sonarsource.com/open-source-editions/sonarqube-community-edition/) (formerly SonarQube Community) is Sonar's self-managed free offering, released on a monthly schedule. It includes the latest core capabilities available in open source, providing essential features such as bug detection, identification of code smells, and basic security issue analysis across 21 programming languages and frameworks. For advanced security analysis, enterprise-grade integrations, and scalability features, the commercial version, SonarQube Server, is available. -Here you'll find the Docker images for the Community Edition, Developer Edition, Enterprise Edition, and Data Center Edition of SonarQube. +## How to use this image + +Here, you'll find the Docker images for the SonarQube Server (Developer Edition, Enterprise Edition, and Data Center Edition), as well as for SonarQube Community Build. ## Docker Host Requirements @@ -77,29 +96,39 @@ ulimit -n 131072 ulimit -u 8192 ``` -## Try Out SonarQube +## Demo -To quickly run a demo instance, see Using Docker on the [Try Out SonarQube](https://docs.sonarqube.org/latest/setup/get-started-2-minutes/) page. When you are ready to move to a more sustainable setup, take some time to read the **Installation** and **Configuration** sections below. +To quickly run a demo instance, see Using Docker on the [Try Out SonarQube](https://docs.sonarsource.com/sonarqube-server/latest/try-out-sonarqube/) page. When you are ready to move to a more sustainable setup, take some time to read the **Installation** and **Configuration** sections below. ## Installation > **Multi-platform support**: Starting from SonarQube `9.9` LTS, the docker images support running both on `amd64` architecture and `arm64`-based Apple Silicon (M1). -For installation instructions, see Installing the Server from the Docker Image on the [Install the Server](https://docs.sonarqube.org/latest/setup/install-server/) page. +For installation instructions, see Installing the Server from the Docker Image on the [Install the Server](https://docs.sonarsource.com/sonarqube-server/latest/setup-and-upgrade/install-the-server/installing-sonarqube-from-docker/) page. -To run a cluster with the Data Center Edition, please refer to Installing SonarQube from the Docker Image on the [Install the Server as a Cluster](https://docs.sonarqube.org/latest/setup/install-cluster/) page. +To run a cluster with the SonarQube Server Data Center Edition, please refer to Installing SonarQube Server from the Docker Image on the [Install the Server as a Cluster](https://docs.sonarsource.com/sonarqube-server/latest/setup-and-upgrade/install-the-server-as-a-cluster/) page. > The `lts` tag on Docker images is replaced with every new LTS release. If you want to avoid any automatic major upgrades, we recommend using the corresponding `9.9-` tag instead of `lts-`. ## Configuration +### Port binding + +By default, the server running within the container will listen on port 9000. You can expose the container port 9000 to the host port 9000 with the `-p 9000:9000` argument to `docker run`, like the command below: + +```console +docker run --name sonarqube-custom -p 9000:9000 sonarqube:community +``` + +You can then browse to `http://localhost:9000` or `http://host-ip:9000` in your web browser to access the web interface. + ### Database By default, the image will use an embedded H2 database that is not suited for production. -> **Warning:** Only a single instance of SonarQube can connect to a database schema. If you're using a Docker Swarm or Kubernetes, make sure that multiple SonarQube instances are never running on the same database schema simultaneously. This will cause SonarQube to behave unpredictably and data will be corrupted. There is no safeguard until [SONAR-10362](https://jira.sonarsource.com/browse/SONAR-10362). The Data Center Edition has the same limitation in that only one cluster can connect to one database schema at the same time. +> **Warning:** Only a single instance of SonarQube Server or SonarQube Community Build can connect to a database schema. If you're using a Docker Swarm or Kubernetes, make sure that multiple instances are never running on the same database schema simultaneously. This will cause the SonarQube to behave unpredictably, and data will be corrupted. There is no safeguard, as described on [SONAR-10362](https://jira.sonarsource.com/browse/SONAR-10362). The SonarQube Server Data Center Edition has the same limitation in that only one cluster can connect to one database schema at the same time. -Set up a database by following the "Installing the Database" section of https://docs.sonarqube.org/latest/setup/install-server/. +Set up a database by following the ["Installing the Database"](https://docs.sonarsource.com/sonarqube-server/latest/setup-and-upgrade/install-the-server/installing-the-database/) section. ### Use volumes @@ -113,7 +142,7 @@ We recommend creating volumes for the following directories: ## Upgrading -For upgrade instructions, see Upgrading from the Docker Image on the [Upgrade the Server](https://docs.sonarqube.org/latest/setup/upgrading/) page. +For upgrade instructions, see Upgrading from the Docker Image on the [Upgrade the Server](https://docs.sonarsource.com/sonarqube-server/latest/server-upgrade-and-maintenance/upgrade/upgrade/) page. ## Advanced configuration @@ -122,7 +151,7 @@ For upgrade instructions, see Upgrading from the Docker Image on the [Upgrade th In some environments, it may make more sense to prepare a custom image containing your configuration. A `Dockerfile` to achieve this may be as simple as: ```dockerfile -FROM sonarqube:8.9-community +FROM sonarqube:community COPY sonar-custom-plugin-1.0.jar /opt/sonarqube/extensions/ ``` @@ -133,9 +162,9 @@ $ docker build --tag=sonarqube-custom . $ docker run -ti sonarqube-custom ``` -### Avoid hard termination of SonarQube +### Avoid hard termination -A SonarQube instance will stop gracefully, waiting for any tasks in progress to finish. Waiting for in-progress tasks to finish can take a large amount of time which the docker does not expect by default when stopping. To avoid having the SonarQube instance killed by the Docker daemon after 10 seconds, it is best to configure a timeout to stop the container with `--stop-timeout`. For example: +The instance will stop gracefully, waiting for any tasks in progress to finish. Waiting for in-progress tasks to finish can take a large amount of time, which the docker does not expect by default when stopping. To avoid having the instance killed by the Docker daemon after 10 seconds, it is best to configure a timeout to stop the container with `--stop-timeout`. For example: ```console docker run --stop-timeout 3600 sonarqube @@ -143,11 +172,11 @@ docker run --stop-timeout 3600 sonarqube ## Administration -The administration guide can be found [here](https://redirect.sonarsource.com/doc/administration-guide.html). +Information about administering your instance of SonarQube Server begins [here](https://docs.sonarsource.com/sonarqube-server/latest/instance-administration/overview/). # License -SonarQube Community Edition is licensed under [GNU Lesser General Public License, Version 3.0](http://www.gnu.org/licenses/lgpl.txt). SonarQube Developer, Enterprise, and Data Center Editions are licensed under [SonarSource Terms and Conditions](https://www.sonarsource.com/docs/sonarsource_terms_and_conditions.pdf). +SonarQube Community Build is licensed under [GNU Lesser General Public License, Version 3.0](http://www.gnu.org/licenses/lgpl.txt). SonarQube Server Developer, Enterprise, and Data Center Editions are licensed under [SonarSource Terms and Condition](https://www.sonarsource.com/docs/sonarsource_terms_and_conditions.pdf). 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). diff --git a/sonarqube/content.md b/sonarqube/content.md index 4d9138ff2d90..6c6f71b05a5d 100644 --- a/sonarqube/content.md +++ b/sonarqube/content.md @@ -1,12 +1,14 @@ -# What is SonarQube? +# What is `sonarqube`? -[SonarQube](https://www.sonarqube.org/) is the leading tool for continuously inspecting the Code Quality and Security of your codebases, and guiding development teams during Code Reviews. Covering 27 programming languages, while pairing-up with your existing software pipeline, SonarQube provides clear remediation guidance for developers to understand and fix issues, and for teams overall to deliver better and safer software. With over 225,000 deployments helping small development teams as well as global organizations, SonarQube provides the means for all teams and companies around the world to own and impact their Code Quality and Security. +`sonarqube` Docker repository stores the official Sonar images for SonarQube Server and SonarQube Community Build. -%%LOGO%% +[SonarQube Server](https://www.sonarsource.com/products/sonarqube/) (formerly SonarQube) is an on-premise analysis tool designed to detect quality and security issues in 30+ languages, frameworks, and IaC platforms. The solution also provides fix recommendations leveraging AI with Sonar's AI CodeFix capability. By integrating directly with your CI pipeline or on one of the supported DevOps platforms, your code is checked against an extensive set of rules that cover many attributes of code, such as maintainability, reliability, and security issues on each merge/pull request. -# How to use this image +[SonarQube Community Build](https://www.sonarsource.com/open-source-editions/sonarqube-community-edition/) (formerly SonarQube Community) is Sonar's self-managed free offering, released on a monthly schedule. It includes the latest core capabilities available in open source, providing essential features such as bug detection, identification of code smells, and basic security issue analysis across 21 programming languages and frameworks. For advanced security analysis, enterprise-grade integrations, and scalability features, the commercial version, SonarQube Server, is available. -Here you'll find the Docker images for the Community Edition, Developer Edition, Enterprise Edition, and Data Center Edition of SonarQube. +## How to use this image + +Here, you'll find the Docker images for the SonarQube Server (Developer Edition, Enterprise Edition, and Data Center Edition), as well as for SonarQube Community Build. ## Docker Host Requirements @@ -21,29 +23,39 @@ ulimit -n 131072 ulimit -u 8192 ``` -## Try Out SonarQube +## Demo -To quickly run a demo instance, see Using Docker on the [Try Out SonarQube](https://docs.sonarqube.org/latest/setup/get-started-2-minutes/) page. When you are ready to move to a more sustainable setup, take some time to read the **Installation** and **Configuration** sections below. +To quickly run a demo instance, see Using Docker on the [Try Out SonarQube](https://docs.sonarsource.com/sonarqube-server/latest/try-out-sonarqube/) page. When you are ready to move to a more sustainable setup, take some time to read the **Installation** and **Configuration** sections below. ## Installation > **Multi-platform support**: Starting from SonarQube `9.9` LTS, the docker images support running both on `amd64` architecture and `arm64`-based Apple Silicon (M1). -For installation instructions, see Installing the Server from the Docker Image on the [Install the Server](https://docs.sonarqube.org/latest/setup/install-server/) page. +For installation instructions, see Installing the Server from the Docker Image on the [Install the Server](https://docs.sonarsource.com/sonarqube-server/latest/setup-and-upgrade/install-the-server/installing-sonarqube-from-docker/) page. -To run a cluster with the Data Center Edition, please refer to Installing SonarQube from the Docker Image on the [Install the Server as a Cluster](https://docs.sonarqube.org/latest/setup/install-cluster/) page. +To run a cluster with the SonarQube Server Data Center Edition, please refer to Installing SonarQube Server from the Docker Image on the [Install the Server as a Cluster](https://docs.sonarsource.com/sonarqube-server/latest/setup-and-upgrade/install-the-server-as-a-cluster/) page. > The `lts` tag on Docker images is replaced with every new LTS release. If you want to avoid any automatic major upgrades, we recommend using the corresponding `9.9-` tag instead of `lts-`. ## Configuration +### Port binding + +By default, the server running within the container will listen on port 9000. You can expose the container port 9000 to the host port 9000 with the `-p 9000:9000` argument to `docker run`, like the command below: + +```console +docker run --name sonarqube-custom -p 9000:9000 %%IMAGE%%:community +``` + +You can then browse to `http://localhost:9000` or `http://host-ip:9000` in your web browser to access the web interface. + ### Database By default, the image will use an embedded H2 database that is not suited for production. -> **Warning:** Only a single instance of SonarQube can connect to a database schema. If you're using a Docker Swarm or Kubernetes, make sure that multiple SonarQube instances are never running on the same database schema simultaneously. This will cause SonarQube to behave unpredictably and data will be corrupted. There is no safeguard until [SONAR-10362](https://jira.sonarsource.com/browse/SONAR-10362). The Data Center Edition has the same limitation in that only one cluster can connect to one database schema at the same time. +> **Warning:** Only a single instance of SonarQube Server or SonarQube Community Build can connect to a database schema. If you're using a Docker Swarm or Kubernetes, make sure that multiple instances are never running on the same database schema simultaneously. This will cause the SonarQube to behave unpredictably, and data will be corrupted. There is no safeguard, as described on [SONAR-10362](https://jira.sonarsource.com/browse/SONAR-10362). The SonarQube Server Data Center Edition has the same limitation in that only one cluster can connect to one database schema at the same time. -Set up a database by following the "Installing the Database" section of https://docs.sonarqube.org/latest/setup/install-server/. +Set up a database by following the ["Installing the Database"](https://docs.sonarsource.com/sonarqube-server/latest/setup-and-upgrade/install-the-server/installing-the-database/) section. ### Use volumes @@ -57,7 +69,7 @@ We recommend creating volumes for the following directories: ## Upgrading -For upgrade instructions, see Upgrading from the Docker Image on the [Upgrade the Server](https://docs.sonarqube.org/latest/setup/upgrading/) page. +For upgrade instructions, see Upgrading from the Docker Image on the [Upgrade the Server](https://docs.sonarsource.com/sonarqube-server/latest/server-upgrade-and-maintenance/upgrade/upgrade/) page. ## Advanced configuration @@ -66,7 +78,7 @@ For upgrade instructions, see Upgrading from the Docker Image on the [Upgrade th In some environments, it may make more sense to prepare a custom image containing your configuration. A `Dockerfile` to achieve this may be as simple as: ```dockerfile -FROM sonarqube:8.9-community +FROM %%IMAGE%%:community COPY sonar-custom-plugin-1.0.jar /opt/sonarqube/extensions/ ``` @@ -77,9 +89,9 @@ $ docker build --tag=sonarqube-custom . $ docker run -ti sonarqube-custom ``` -### Avoid hard termination of SonarQube +### Avoid hard termination -A SonarQube instance will stop gracefully, waiting for any tasks in progress to finish. Waiting for in-progress tasks to finish can take a large amount of time which the docker does not expect by default when stopping. To avoid having the SonarQube instance killed by the Docker daemon after 10 seconds, it is best to configure a timeout to stop the container with `--stop-timeout`. For example: +The instance will stop gracefully, waiting for any tasks in progress to finish. Waiting for in-progress tasks to finish can take a large amount of time, which the docker does not expect by default when stopping. To avoid having the instance killed by the Docker daemon after 10 seconds, it is best to configure a timeout to stop the container with `--stop-timeout`. For example: ```console docker run --stop-timeout 3600 %%IMAGE%% @@ -87,4 +99,4 @@ docker run --stop-timeout 3600 %%IMAGE%% ## Administration -The administration guide can be found [here](https://redirect.sonarsource.com/doc/administration-guide.html). +Information about administering your instance of SonarQube Server begins [here](https://docs.sonarsource.com/sonarqube-server/latest/instance-administration/overview/). diff --git a/sonarqube/license.md b/sonarqube/license.md index bc16166651ad..542e24334751 100644 --- a/sonarqube/license.md +++ b/sonarqube/license.md @@ -1 +1 @@ -SonarQube Community Edition is licensed under [GNU Lesser General Public License, Version 3.0](http://www.gnu.org/licenses/lgpl.txt). SonarQube Developer, Enterprise, and Data Center Editions are licensed under [SonarSource Terms and Conditions](https://www.sonarsource.com/docs/sonarsource_terms_and_conditions.pdf). +SonarQube Community Build is licensed under [GNU Lesser General Public License, Version 3.0](http://www.gnu.org/licenses/lgpl.txt). SonarQube Server Developer, Enterprise, and Data Center Editions are licensed under [SonarSource Terms and Condition](https://www.sonarsource.com/docs/sonarsource_terms_and_conditions.pdf). diff --git a/sonarqube/logo.png b/sonarqube/logo.png index c17679b539e3..ef9dd66d53c9 100644 Binary files a/sonarqube/logo.png and b/sonarqube/logo.png differ diff --git a/sonarqube/metadata.json b/sonarqube/metadata.json new file mode 100644 index 000000000000..4e2e34b2be0e --- /dev/null +++ b/sonarqube/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "integration-and-delivery" + ] + } +} diff --git a/spark/README.md b/spark/README.md index 6d5026a88eeb..82128227f444 100644 --- a/spark/README.md +++ b/spark/README.md @@ -24,18 +24,37 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.5.0-scala2.12-java17-python3-ubuntu`, `3.5.0-java17-python3`, `3.5.0-java17`, `python3-java17`](https://github.com/apache/spark-docker/blob/6f68fe0f7051c10f2bf43a50a7decfce2e97baf0/3.5.0/scala2.12-java17-python3-ubuntu/Dockerfile) -- [`3.5.0-scala2.12-java17-r-ubuntu`, `3.5.0-java17-r`](https://github.com/apache/spark-docker/blob/6f68fe0f7051c10f2bf43a50a7decfce2e97baf0/3.5.0/scala2.12-java17-r-ubuntu/Dockerfile) -- [`3.5.0-scala2.12-java17-ubuntu`, `3.5.0-java17-scala`](https://github.com/apache/spark-docker/blob/6f68fe0f7051c10f2bf43a50a7decfce2e97baf0/3.5.0/scala2.12-java17-ubuntu/Dockerfile) -- [`3.5.0-scala2.12-java17-python3-r-ubuntu`](https://github.com/apache/spark-docker/blob/6f68fe0f7051c10f2bf43a50a7decfce2e97baf0/3.5.0/scala2.12-java17-python3-r-ubuntu/Dockerfile) -- [`3.5.0-scala2.12-java11-python3-ubuntu`, `3.5.0-python3`, `3.5.0`, `python3`, `latest`](https://github.com/apache/spark-docker/blob/028efd4637fb2cf791d5bd9ea70b2fca472de4b7/3.5.0/scala2.12-java11-python3-ubuntu/Dockerfile) -- [`3.5.0-scala2.12-java11-r-ubuntu`, `3.5.0-r`, `r`](https://github.com/apache/spark-docker/blob/028efd4637fb2cf791d5bd9ea70b2fca472de4b7/3.5.0/scala2.12-java11-r-ubuntu/Dockerfile) -- [`3.5.0-scala2.12-java11-ubuntu`, `3.5.0-scala`, `scala`](https://github.com/apache/spark-docker/blob/028efd4637fb2cf791d5bd9ea70b2fca472de4b7/3.5.0/scala2.12-java11-ubuntu/Dockerfile) -- [`3.5.0-scala2.12-java11-python3-r-ubuntu`](https://github.com/apache/spark-docker/blob/028efd4637fb2cf791d5bd9ea70b2fca472de4b7/3.5.0/scala2.12-java11-python3-r-ubuntu/Dockerfile) -- [`3.4.1-scala2.12-java11-python3-ubuntu`, `3.4.1-python3`, `3.4.1`](https://github.com/apache/spark-docker/blob/58d288546e8419d229f14b62b6a653999e0390f1/3.4.1/scala2.12-java11-python3-ubuntu/Dockerfile) -- [`3.4.1-scala2.12-java11-r-ubuntu`, `3.4.1-r`](https://github.com/apache/spark-docker/blob/58d288546e8419d229f14b62b6a653999e0390f1/3.4.1/scala2.12-java11-r-ubuntu/Dockerfile) -- [`3.4.1-scala2.12-java11-ubuntu`, `3.4.1-scala`](https://github.com/apache/spark-docker/blob/58d288546e8419d229f14b62b6a653999e0390f1/3.4.1/scala2.12-java11-ubuntu/Dockerfile) -- [`3.4.1-scala2.12-java11-python3-r-ubuntu`](https://github.com/apache/spark-docker/blob/58d288546e8419d229f14b62b6a653999e0390f1/3.4.1/scala2.12-java11-python3-r-ubuntu/Dockerfile) +- [`4.0.0-scala2.13-java21-python3-ubuntu`, `4.0.0-java21-python3`, `4.0.0-java21`, `python3`, `latest`](https://github.com/apache/spark-docker/blob/4bd1dbce94797b5b387b784db6b378069a8b6328/4.0.0/scala2.13-java21-python3-ubuntu/Dockerfile) + +- [`4.0.0-scala2.13-java21-r-ubuntu`, `4.0.0-java21-r`](https://github.com/apache/spark-docker/blob/4bd1dbce94797b5b387b784db6b378069a8b6328/4.0.0/scala2.13-java21-r-ubuntu/Dockerfile) + +- [`4.0.0-scala2.13-java21-ubuntu`, `4.0.0-java21-scala`](https://github.com/apache/spark-docker/blob/4bd1dbce94797b5b387b784db6b378069a8b6328/4.0.0/scala2.13-java21-ubuntu/Dockerfile) + +- [`4.0.0-scala2.13-java21-python3-r-ubuntu`](https://github.com/apache/spark-docker/blob/4bd1dbce94797b5b387b784db6b378069a8b6328/4.0.0/scala2.13-java21-python3-r-ubuntu/Dockerfile) + +- [`4.0.0-scala2.13-java17-python3-ubuntu`, `4.0.0-python3`, `4.0.0`, `python3-java17`](https://github.com/apache/spark-docker/blob/4bd1dbce94797b5b387b784db6b378069a8b6328/4.0.0/scala2.13-java17-python3-ubuntu/Dockerfile) + +- [`4.0.0-scala2.13-java17-r-ubuntu`, `4.0.0-r`, `r`](https://github.com/apache/spark-docker/blob/4bd1dbce94797b5b387b784db6b378069a8b6328/4.0.0/scala2.13-java17-r-ubuntu/Dockerfile) + +- [`4.0.0-scala2.13-java17-ubuntu`, `4.0.0-scala`, `scala`](https://github.com/apache/spark-docker/blob/4bd1dbce94797b5b387b784db6b378069a8b6328/4.0.0/scala2.13-java17-ubuntu/Dockerfile) + +- [`4.0.0-scala2.13-java17-python3-r-ubuntu`](https://github.com/apache/spark-docker/blob/4bd1dbce94797b5b387b784db6b378069a8b6328/4.0.0/scala2.13-java17-python3-r-ubuntu/Dockerfile) + +- [`3.5.6-scala2.12-java17-python3-ubuntu`, `3.5.6-java17-python3`, `3.5.6-java17`](https://github.com/apache/spark-docker/blob/c264d48dc510018095700ed33e700ccc34268bf2/3.5.6/scala2.12-java17-python3-ubuntu/Dockerfile) + +- [`3.5.6-scala2.12-java17-r-ubuntu`, `3.5.6-java17-r`](https://github.com/apache/spark-docker/blob/c264d48dc510018095700ed33e700ccc34268bf2/3.5.6/scala2.12-java17-r-ubuntu/Dockerfile) + +- [`3.5.6-scala2.12-java17-ubuntu`, `3.5.6-java17-scala`](https://github.com/apache/spark-docker/blob/c264d48dc510018095700ed33e700ccc34268bf2/3.5.6/scala2.12-java17-ubuntu/Dockerfile) + +- [`3.5.6-scala2.12-java17-python3-r-ubuntu`](https://github.com/apache/spark-docker/blob/c264d48dc510018095700ed33e700ccc34268bf2/3.5.6/scala2.12-java17-python3-r-ubuntu/Dockerfile) + +- [`3.5.6-scala2.12-java11-python3-ubuntu`, `3.5.6-python3`, `3.5.6`](https://github.com/apache/spark-docker/blob/c264d48dc510018095700ed33e700ccc34268bf2/3.5.6/scala2.12-java11-python3-ubuntu/Dockerfile) + +- [`3.5.6-scala2.12-java11-r-ubuntu`, `3.5.6-r`](https://github.com/apache/spark-docker/blob/c264d48dc510018095700ed33e700ccc34268bf2/3.5.6/scala2.12-java11-r-ubuntu/Dockerfile) + +- [`3.5.6-scala2.12-java11-ubuntu`, `3.5.6-scala`](https://github.com/apache/spark-docker/blob/c264d48dc510018095700ed33e700ccc34268bf2/3.5.6/scala2.12-java11-ubuntu/Dockerfile) + +- [`3.5.6-scala2.12-java11-python3-r-ubuntu`](https://github.com/apache/spark-docker/blob/c264d48dc510018095700ed33e700ccc34268bf2/3.5.6/scala2.12-java11-python3-r-ubuntu/Dockerfile) # Quick reference (cont.) diff --git a/spark/metadata.json b/spark/metadata.json new file mode 100644 index 000000000000..2b3b7cd7c11f --- /dev/null +++ b/spark/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "data-science" + ] + } +} diff --git a/spiped/README.md b/spiped/README.md index 723861b86011..1915de1bc8d0 100644 --- a/spiped/README.md +++ b/spiped/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.6.2`, `1.6`, `1`, `latest`](https://github.com/TimWolla/docker-spiped/blob/734961b7d2f6977c52a4136def06bf2f92d905d4/1.6/Dockerfile) -- [`1.6.2-alpine`, `1.6-alpine`, `1-alpine`, `alpine`](https://github.com/TimWolla/docker-spiped/blob/c967076534a8ccdac377a6f02c332d0e181c85aa/1.6/alpine/Dockerfile) +- [`1.6.4`, `1.6`, `1`, `latest`](https://github.com/TimWolla/docker-spiped/blob/6cfa21da993903156ca7347b6f0f9e8111d46671/1.6/Dockerfile) + +- [`1.6.4-alpine`, `1.6-alpine`, `1-alpine`, `alpine`](https://github.com/TimWolla/docker-spiped/blob/6cfa21da993903156ca7347b6f0f9e8111d46671/1.6/alpine/Dockerfile) # Quick reference (cont.) @@ -33,7 +34,7 @@ WARNING: [https://github.com/TimWolla/docker-spiped/issues](https://github.com/TimWolla/docker-spiped/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/spiped/), [`arm32v5`](https://hub.docker.com/r/arm32v5/spiped/), [`arm32v6`](https://hub.docker.com/r/arm32v6/spiped/), [`arm32v7`](https://hub.docker.com/r/arm32v7/spiped/), [`arm64v8`](https://hub.docker.com/r/arm64v8/spiped/), [`i386`](https://hub.docker.com/r/i386/spiped/), [`mips64le`](https://hub.docker.com/r/mips64le/spiped/), [`ppc64le`](https://hub.docker.com/r/ppc64le/spiped/), [`s390x`](https://hub.docker.com/r/s390x/spiped/) + [`amd64`](https://hub.docker.com/r/amd64/spiped/), [`arm32v5`](https://hub.docker.com/r/arm32v5/spiped/), [`arm32v6`](https://hub.docker.com/r/arm32v6/spiped/), [`arm32v7`](https://hub.docker.com/r/arm32v7/spiped/), [`arm64v8`](https://hub.docker.com/r/arm64v8/spiped/), [`i386`](https://hub.docker.com/r/i386/spiped/), [`mips64le`](https://hub.docker.com/r/mips64le/spiped/), [`ppc64le`](https://hub.docker.com/r/ppc64le/spiped/), [`riscv64`](https://hub.docker.com/r/riscv64/spiped/), [`s390x`](https://hub.docker.com/r/s390x/spiped/) - **Published image artifact details**: [repo-info repo's `repos/spiped/` directory](https://github.com/docker-library/repo-info/blob/master/repos/spiped) ([history](https://github.com/docker-library/repo-info/commits/master/repos/spiped)) diff --git a/spiped/metadata.json b/spiped/metadata.json new file mode 100644 index 000000000000..f1e52700787d --- /dev/null +++ b/spiped/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "security" + ] + } +} diff --git a/storm/README.md b/storm/README.md index a1c445d00690..0a3c21a55263 100644 --- a/storm/README.md +++ b/storm/README.md @@ -17,21 +17,21 @@ WARNING: # Quick reference - **Maintained by**: - [the Docker Community](https://github.com/31z4/storm-docker) + [Apache Storm](https://storm.apache.org/contribute/People.html) - **Where to get help**: - [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) + [Apache Storm™ community](https://storm.apache.org/getting-help.html) # Supported tags and respective `Dockerfile` links -- [`1.2.4-temurin`, `1.2-temurin`](https://github.com/31z4/storm-docker/blob/14c749848c8ff7c955f2b29c57e327ae80fbbb7e/1.2.4/Dockerfile) -- [`2.4.0-temurin`, `2.4-temurin`](https://github.com/31z4/storm-docker/blob/a81f9686e8a13dbf428864482f2d0bba50e9c414/2.4.0/Dockerfile) -- [`2.5.0`, `2.5`, `latest`](https://github.com/31z4/storm-docker/blob/8e162f994d36bfae7f13a32ceb4193d185b9a89e/2.5.0/Dockerfile) +- [`2.8.1-jre17`, `2.8-jre17`, `2.8.1`, `2.8`, `latest`](https://github.com/apache/storm-docker/blob/c81967cfcd43d2535f097f0c68eacdbf4ec778cf/2.8.1/Dockerfile) + +- [`2.8.1-jre21`, `2.8-jre21`](https://github.com/apache/storm-docker/blob/c81967cfcd43d2535f097f0c68eacdbf4ec778cf/2.8.1-jre21/Dockerfile) # Quick reference (cont.) - **Where to file issues**: - [https://github.com/31z4/storm-docker/issues](https://github.com/31z4/storm-docker/issues?q=) + https://issues.apache.org/jira/browse/STORM - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) [`amd64`](https://hub.docker.com/r/amd64/storm/), [`arm64v8`](https://hub.docker.com/r/arm64v8/storm/) @@ -49,7 +49,11 @@ WARNING: # What is Apache Storm? -Apache Storm is a distributed computation framework written predominantly in the Clojure programming language. Originally created by Nathan Marz and team at BackType, the project was open sourced after being acquired by Twitter. It uses custom created "spouts" and "bolts" to define information sources and manipulations to allow batch, distributed processing of streaming data. The initial release was on 17 September 2011. +Apache Storm is a free and open source distributed realtime computation system. Apache Storm makes it easy to reliably process unbounded streams of data, doing for realtime processing what Hadoop did for batch processing. Apache Storm is simple, can be used with any programming language, and is a lot of fun to use! + +Apache Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Apache Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate. + +Apache Storm integrates with the queueing and database technologies you already use. An Apache Storm topology consumes streams of data and processes those streams in arbitrarily complex ways, repartitioning the streams between each stage of the computation however needed. > [wikipedia.org/wiki/Storm_(event_processor)](https://en.wikipedia.org/wiki/Storm_(event_processor)) @@ -97,13 +101,11 @@ $ docker run -it -v $(pwd)/topology.jar:/topology.jar storm storm jar /topology. $ docker run -d -p 8080:8080 --restart always --name ui --link some-nimbus:nimbus storm storm ui ``` -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `storm`: +Example `compose.yaml` for `storm`: ```yaml -version: '3.1' - services: zookeeper: image: zookeeper @@ -135,9 +137,7 @@ services: restart: always ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/9efeec18b6b2ed232cf0fbd3914b6211e16e242c/storm/stack.yml) - -Run `docker stack deploy -c stack.yml storm` (or `docker-compose -f stack.yml up`) and wait for it to initialize completely. The Nimbus will be available at `http://swarm-ip:6627`, `http://localhost:6627`, or `http://host-ip:6627` (as appropriate). +Run `docker compose up` and wait for it to initialize completely. The Nimbus will be available at `http://localhost:6627` or `http://host-ip:6627` (as appropriate). ## Configuration @@ -171,7 +171,11 @@ $ docker run -it -v /logs -v /data storm storm nimbus # License -View [license information](http://storm.apache.org/about/free-and-open-source.html) for the software contained in this image. +Apache Storm, Storm, Apache, the Apache feather logo, and the Apache Storm project logo are trademarks of The Apache Software Foundation. + +Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + +See [license information](http://storm.apache.org/about/free-and-open-source.html). 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). diff --git a/storm/stack.yml b/storm/compose.yaml similarity index 96% rename from storm/stack.yml rename to storm/compose.yaml index a1da43b6efa6..e2cd56c82afb 100644 --- a/storm/stack.yml +++ b/storm/compose.yaml @@ -1,5 +1,3 @@ -version: '3.1' - services: zookeeper: image: zookeeper diff --git a/storm/content.md b/storm/content.md index 901567c666eb..345ad75bf345 100644 --- a/storm/content.md +++ b/storm/content.md @@ -1,6 +1,10 @@ # What is Apache Storm? -Apache Storm is a distributed computation framework written predominantly in the Clojure programming language. Originally created by Nathan Marz and team at BackType, the project was open sourced after being acquired by Twitter. It uses custom created "spouts" and "bolts" to define information sources and manipulations to allow batch, distributed processing of streaming data. The initial release was on 17 September 2011. +Apache Storm is a free and open source distributed realtime computation system. Apache Storm makes it easy to reliably process unbounded streams of data, doing for realtime processing what Hadoop did for batch processing. Apache Storm is simple, can be used with any programming language, and is a lot of fun to use! + +Apache Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Apache Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate. + +Apache Storm integrates with the queueing and database technologies you already use. An Apache Storm topology consumes streams of data and processes those streams in arbitrarily complex ways, repartitioning the streams between each stage of the computation however needed. > [wikipedia.org/wiki/Storm_(event_processor)](https://en.wikipedia.org/wiki/Storm_(event_processor)) @@ -48,9 +52,9 @@ $ docker run -it -v $(pwd)/topology.jar:/topology.jar %%IMAGE%% storm jar /topol $ docker run -d -p 8080:8080 --restart always --name ui --link some-nimbus:nimbus %%IMAGE%% storm ui ``` -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml storm` (or `docker-compose -f stack.yml up`) and wait for it to initialize completely. The Nimbus will be available at `http://swarm-ip:6627`, `http://localhost:6627`, or `http://host-ip:6627` (as appropriate). +Run `docker compose up` and wait for it to initialize completely. The Nimbus will be available at `http://localhost:6627` or `http://host-ip:6627` (as appropriate). ## Configuration diff --git a/storm/get-help.md b/storm/get-help.md new file mode 100644 index 000000000000..53940808e59c --- /dev/null +++ b/storm/get-help.md @@ -0,0 +1 @@ +[Apache Storm™ community](https://storm.apache.org/getting-help.html) diff --git a/storm/github-repo b/storm/github-repo index a8b88815d9ba..0ff0b8656974 100644 --- a/storm/github-repo +++ b/storm/github-repo @@ -1 +1 @@ -https://github.com/31z4/storm-docker +https://github.com/apache/storm-docker diff --git a/storm/issues.md b/storm/issues.md new file mode 100644 index 000000000000..d7535f9de99c --- /dev/null +++ b/storm/issues.md @@ -0,0 +1 @@ +https://issues.apache.org/jira/browse/STORM diff --git a/storm/license.md b/storm/license.md index 995b917aadc5..4a6432f0ce75 100644 --- a/storm/license.md +++ b/storm/license.md @@ -1 +1,5 @@ -View [license information](http://storm.apache.org/about/free-and-open-source.html) for the software contained in this image. +Apache Storm, Storm, Apache, the Apache feather logo, and the Apache Storm project logo are trademarks of The Apache Software Foundation. + +Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). + +See [license information](http://storm.apache.org/about/free-and-open-source.html). diff --git a/storm/maintainer.md b/storm/maintainer.md deleted file mode 120000 index e727ff0696ae..000000000000 --- a/storm/maintainer.md +++ /dev/null @@ -1 +0,0 @@ -../.common-templates/maintainer-community.md \ No newline at end of file diff --git a/storm/maintainer.md b/storm/maintainer.md new file mode 100644 index 000000000000..a08decbc7bfa --- /dev/null +++ b/storm/maintainer.md @@ -0,0 +1 @@ +[Apache Storm](https://storm.apache.org/contribute/People.html) diff --git a/storm/metadata.json b/storm/metadata.json new file mode 100644 index 000000000000..2b3b7cd7c11f --- /dev/null +++ b/storm/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "data-science" + ] + } +} diff --git a/swift/README.md b/swift/README.md index 9cdf7872f59f..05bae54a6b9c 100644 --- a/swift/README.md +++ b/swift/README.md @@ -24,65 +24,95 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`5.9.1`, `5.9`, `5.9.1-jammy`, `5.9-jammy`, `jammy`, `latest`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/ubuntu/22.04/Dockerfile) -- [`5.9.1-slim`, `5.9-slim`, `5.9.1-jammy-slim`, `5.9-jammy-slim`, `jammy-slim`, `slim`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/ubuntu/22.04/slim/Dockerfile) -- [`5.9.1-focal-slim`, `5.9-focal-slim`, `focal-slim`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/ubuntu/20.04/slim/Dockerfile) -- [`5.9.1-focal`, `5.9-focal`, `focal`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/ubuntu/20.04/Dockerfile) -- [`5.9.1-amazonlinux2`, `5.9-amazonlinux2`, `amazonlinux2`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/amazonlinux/2/Dockerfile) -- [`5.9.1-amazonlinux2-slim`, `5.9-amazonlinux2-slim`, `amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/amazonlinux/2/slim/Dockerfile) -- [`5.9.1-centos7`, `5.9-centos7`, `centos7`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/centos/7/Dockerfile) -- [`5.9.1-centos7-slim`, `5.9-centos7-slim`, `centos7-slim`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/centos/7/slim/Dockerfile) -- [`5.9.1-rhel-ubi9`, `5.9-rhel-ubi9`, `rhel-ubi9`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/rhel-ubi/9/Dockerfile) -- [`5.9.1-rhel-ubi9-slim`, `5.9-rhel-ubi9-slim`, `rhel-ubi9-slim`](https://github.com/apple/swift-docker/blob/df8e8e36df704e52b2fabf9e732a0f08fbb333e4/5.9/rhel-ubi/9/slim/Dockerfile) -- [`5.9.1-windowsservercore-ltsc2022`, `5.9-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/apple/swift-docker/blob/3fc609343f771e31c17140ed90d6cb2023e6e701/5.9/windows/LTSC2022/Dockerfile) -- [`5.8.1`, `5.8`, `5.8.1-jammy`, `5.8-jammy`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/ubuntu/22.04/Dockerfile) -- [`5.8.1-slim`, `5.8-slim`, `5.8.1-jammy-slim`, `5.8-jammy-slim`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/ubuntu/22.04/slim/Dockerfile) -- [`5.8.1-focal-slim`, `5.8-focal-slim`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/ubuntu/20.04/slim/Dockerfile) -- [`5.8.1-focal`, `5.8-focal`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/ubuntu/20.04/Dockerfile) -- [`5.8.1-amazonlinux2`, `5.8-amazonlinux2`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/amazonlinux/2/Dockerfile) -- [`5.8.1-amazonlinux2-slim`, `5.8-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/amazonlinux/2/slim/Dockerfile) -- [`5.8.1-centos7`, `5.8-centos7`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/centos/7/Dockerfile) -- [`5.8.1-centos7-slim`, `5.8-centos7-slim`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/centos/7/slim/Dockerfile) -- [`5.8.1-rhel-ubi9`, `5.8-rhel-ubi9`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/rhel-ubi/9/Dockerfile) -- [`5.8.1-rhel-ubi9-slim`, `5.8-rhel-ubi9-slim`](https://github.com/apple/swift-docker/blob/0190ac8d812bfcfab0ee39d600116ab5e3243f48/5.8/rhel-ubi/9/slim/Dockerfile) -- [`5.7.3`, `5.7`, `5.7.3-jammy`, `5.7-jammy`](https://github.com/apple/swift-docker/blob/f53cb8e9f11507814412fb4e9c6f0fce1f4b7552/5.7/ubuntu/22.04/Dockerfile) -- [`5.7.3-slim`, `5.7-slim`, `5.7.3-jammy-slim`, `5.7-jammy-slim`](https://github.com/apple/swift-docker/blob/f53cb8e9f11507814412fb4e9c6f0fce1f4b7552/5.7/ubuntu/22.04/slim/Dockerfile) -- [`5.7.3-focal-slim`, `5.7-focal-slim`](https://github.com/apple/swift-docker/blob/f53cb8e9f11507814412fb4e9c6f0fce1f4b7552/5.7/ubuntu/20.04/slim/Dockerfile) -- [`5.7.3-focal`, `5.7-focal`](https://github.com/apple/swift-docker/blob/f53cb8e9f11507814412fb4e9c6f0fce1f4b7552/5.7/ubuntu/20.04/Dockerfile) -- [`5.7.3-amazonlinux2`, `5.7-amazonlinux2`](https://github.com/apple/swift-docker/blob/f53cb8e9f11507814412fb4e9c6f0fce1f4b7552/5.7/amazonlinux/2/Dockerfile) -- [`5.7.3-amazonlinux2-slim`, `5.7-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/f53cb8e9f11507814412fb4e9c6f0fce1f4b7552/5.7/amazonlinux/2/slim/Dockerfile) -- [`5.7.3-centos7`, `5.7-centos7`](https://github.com/apple/swift-docker/blob/f53cb8e9f11507814412fb4e9c6f0fce1f4b7552/5.7/centos/7/Dockerfile) -- [`5.7.3-centos7-slim`, `5.7-centos7-slim`](https://github.com/apple/swift-docker/blob/f53cb8e9f11507814412fb4e9c6f0fce1f4b7552/5.7/centos/7/slim/Dockerfile) -- [`5.6.3-focal-slim`, `5.6-focal-slim`](https://github.com/apple/swift-docker/blob/1188cc86d15f9e98d90db9f98de3598d5d5f7bb2/5.6/ubuntu/20.04/slim/Dockerfile) -- [`5.6.3-focal`, `5.6-focal`](https://github.com/apple/swift-docker/blob/1188cc86d15f9e98d90db9f98de3598d5d5f7bb2/5.6/ubuntu/20.04/Dockerfile) -- [`5.6.3-amazonlinux2`, `5.6-amazonlinux2`](https://github.com/apple/swift-docker/blob/1188cc86d15f9e98d90db9f98de3598d5d5f7bb2/5.6/amazonlinux/2/Dockerfile) -- [`5.6.3-amazonlinux2-slim`, `5.6-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/1188cc86d15f9e98d90db9f98de3598d5d5f7bb2/5.6/amazonlinux/2/slim/Dockerfile) -- [`5.6.3-centos7`, `5.6-centos7`](https://github.com/apple/swift-docker/blob/1188cc86d15f9e98d90db9f98de3598d5d5f7bb2/5.6/centos/7/Dockerfile) -- [`5.6.3-centos7-slim`, `5.6-centos7-slim`](https://github.com/apple/swift-docker/blob/1188cc86d15f9e98d90db9f98de3598d5d5f7bb2/5.6/centos/7/slim/Dockerfile) -- [`5.5.3-focal-slim`, `5.5-focal-slim`](https://github.com/apple/swift-docker/blob/9394b31e064cf0d80eaab08b692a2886c7aea8fe/5.5/ubuntu/20.04/slim/Dockerfile) -- [`5.5.3-focal`, `5.5-focal`](https://github.com/apple/swift-docker/blob/9394b31e064cf0d80eaab08b692a2886c7aea8fe/5.5/ubuntu/20.04/Dockerfile) -- [`5.5.3-amazonlinux2`, `5.5-amazonlinux2`](https://github.com/apple/swift-docker/blob/9394b31e064cf0d80eaab08b692a2886c7aea8fe/5.5/amazonlinux/2/Dockerfile) -- [`5.5.3-amazonlinux2-slim`, `5.5-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/9394b31e064cf0d80eaab08b692a2886c7aea8fe/5.5/amazonlinux/2/slim/Dockerfile) -- [`5.5.3-centos7`, `5.5-centos7`](https://github.com/apple/swift-docker/blob/9394b31e064cf0d80eaab08b692a2886c7aea8fe/5.5/centos/7/Dockerfile) -- [`5.5.3-centos7-slim`, `5.5-centos7-slim`](https://github.com/apple/swift-docker/blob/9394b31e064cf0d80eaab08b692a2886c7aea8fe/5.5/centos/7/slim/Dockerfile) -- [`5.4.3-focal-slim`, `5.4-focal-slim`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.4/ubuntu/20.04/slim/Dockerfile) -- [`5.4.3-focal`, `5.4-focal`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.4/ubuntu/20.04/Dockerfile) -- [`5.4.3-amazonlinux2`, `5.4-amazonlinux2`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.4/amazonlinux/2/Dockerfile) -- [`5.4.3-amazonlinux2-slim`, `5.4-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.4/amazonlinux/2/slim/Dockerfile) -- [`5.4.3-centos7`, `5.4-centos7`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.4/centos/7/Dockerfile) -- [`5.4.3-centos7-slim`, `5.4-centos7-slim`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.4/centos/7/slim/Dockerfile) -- [`5.3.3-focal-slim`, `5.3-focal-slim`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.3/ubuntu/20.04/slim/Dockerfile) -- [`5.3.3-focal`, `5.3-focal`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.3/ubuntu/20.04/Dockerfile) -- [`5.3.3-amazonlinux2`, `5.3-amazonlinux2`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.3/amazonlinux/2/Dockerfile) -- [`5.3.3-amazonlinux2-slim`, `5.3-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.3/amazonlinux/2/slim/Dockerfile) -- [`5.3.3-centos7`, `5.3-centos7`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.3/centos/7/Dockerfile) -- [`5.3.3-centos7-slim`, `5.3-centos7-slim`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.3/centos/7/slim/Dockerfile) -- [`5.2.5-focal-slim`, `5.2-focal-slim`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.2/ubuntu/20.04/slim/Dockerfile) -- [`5.2.5-focal`, `5.2-focal`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.2/ubuntu/20.04/Dockerfile) -- [`5.2.5-amazonlinux2`, `5.2-amazonlinux2`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.2/amazonlinux/2/Dockerfile) -- [`5.2.5-amazonlinux2-slim`, `5.2-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.2/amazonlinux/2/slim/Dockerfile) -- [`5.2.5-centos7`, `5.2-centos7`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.2/centos/7/Dockerfile) -- [`5.2.5-centos7-slim`, `5.2-centos7-slim`](https://github.com/apple/swift-docker/blob/2d2c2fb89fe6ecfd8885157eb1666ed2686503a0/5.2/centos/7/slim/Dockerfile) +- [`6.1.2`, `6.1`, `6.1.2-noble`, `6.1-noble`, `noble`, `latest`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/ubuntu/24.04/Dockerfile) + +- [`6.1.2-slim`, `6.1-slim`, `6.1.2-noble-slim`, `6.1-noble-slim`, `noble-slim`, `slim`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/ubuntu/24.04/slim/Dockerfile) + +- [`6.1.2-jammy`, `6.1-jammy`, `jammy`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/ubuntu/22.04/Dockerfile) + +- [`6.1.2-jammy-slim`, `6.1-jammy-slim`, `jammy-slim`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/ubuntu/22.04/slim/Dockerfile) + +- [`6.1.2-focal-slim`, `6.1-focal-slim`, `focal-slim`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/ubuntu/20.04/slim/Dockerfile) + +- [`6.1.2-focal`, `6.1-focal`, `focal`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/ubuntu/20.04/Dockerfile) + +- [`6.1.2-bookworm`, `6.1-bookworm`, `bookworm`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/debian/12/Dockerfile) + +- [`6.1.2-amazonlinux2`, `6.1-amazonlinux2`, `amazonlinux2`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/amazonlinux/2/Dockerfile) + +- [`6.1.2-amazonlinux2-slim`, `6.1-amazonlinux2-slim`, `amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/amazonlinux/2/slim/Dockerfile) + +- [`6.1.2-rhel-ubi9`, `6.1-rhel-ubi9`, `rhel-ubi9`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/rhel-ubi/9/Dockerfile) + +- [`6.1.2-rhel-ubi9-slim`, `6.1-rhel-ubi9-slim`, `rhel-ubi9-slim`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/rhel-ubi/9/slim/Dockerfile) + +- [`6.1.2-windowsservercore-ltsc2022`, `6.1-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/apple/swift-docker/blob/28756f801d3772456301075fcb70b1ef5cda0b6b/6.1/windows/LTSC2022/Dockerfile) + +- [`6.0.3`, `6.0`, `6.0.3-noble`, `6.0-noble`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/ubuntu/24.04/Dockerfile) + +- [`6.0.3-slim`, `6.0-slim`, `6.0.3-noble-slim`, `6.0-noble-slim`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/ubuntu/24.04/slim/Dockerfile) + +- [`6.0.3-jammy`, `6.0-jammy`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/ubuntu/22.04/Dockerfile) + +- [`6.0.3-jammy-slim`, `6.0-jammy-slim`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/ubuntu/22.04/slim/Dockerfile) + +- [`6.0.3-focal-slim`, `6.0-focal-slim`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/ubuntu/20.04/slim/Dockerfile) + +- [`6.0.3-focal`, `6.0-focal`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/ubuntu/20.04/Dockerfile) + +- [`6.0.3-bookworm`, `6.0-bookworm`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/debian/12/Dockerfile) + +- [`6.0.3-amazonlinux2`, `6.0-amazonlinux2`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/amazonlinux/2/Dockerfile) + +- [`6.0.3-amazonlinux2-slim`, `6.0-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/amazonlinux/2/slim/Dockerfile) + +- [`6.0.3-rhel-ubi9`, `6.0-rhel-ubi9`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/rhel-ubi/9/Dockerfile) + +- [`6.0.3-rhel-ubi9-slim`, `6.0-rhel-ubi9-slim`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/rhel-ubi/9/slim/Dockerfile) + +- [`6.0.3-windowsservercore-ltsc2022`, `6.0-windowsservercore-ltsc2022`](https://github.com/apple/swift-docker/blob/f44060cdf224436060d2df98a5c3f63f2600de63/6.0/windows/LTSC2022/Dockerfile) + +- [`5.10.1`, `5.10`, `5.10.1-jammy`, `5.10-jammy`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/ubuntu/22.04/Dockerfile) + +- [`5.10.1-slim`, `5.10-slim`, `5.10.1-jammy-slim`, `5.10-jammy-slim`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/ubuntu/22.04/slim/Dockerfile) + +- [`5.10.1-focal-slim`, `5.10-focal-slim`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/ubuntu/20.04/slim/Dockerfile) + +- [`5.10.1-focal`, `5.10-focal`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/ubuntu/20.04/Dockerfile) + +- [`5.10.1-noble`, `5.10-noble`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/ubuntu/24.04/Dockerfile) + +- [`5.10.1-noble-slim`, `5.10-noble-slim`](https://github.com/apple/swift-docker/blob/38e4244ebab3d6a4e702fb30449827d6c28ee1fd/5.10/ubuntu/24.04/slim/Dockerfile) + +- [`5.10.1-bookworm`, `5.10-bookworm`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/debian/12/Dockerfile) + +- [`5.10.1-amazonlinux2`, `5.10-amazonlinux2`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/amazonlinux/2/Dockerfile) + +- [`5.10.1-amazonlinux2-slim`, `5.10-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/amazonlinux/2/slim/Dockerfile) + +- [`5.10.1-rhel-ubi9`, `5.10-rhel-ubi9`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/rhel-ubi/9/Dockerfile) + +- [`5.10.1-rhel-ubi9-slim`, `5.10-rhel-ubi9-slim`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/rhel-ubi/9/slim/Dockerfile) + +- [`5.10.1-windowsservercore-ltsc2022`, `5.10-windowsservercore-ltsc2022`](https://github.com/apple/swift-docker/blob/53c4d44e4b556d7bab6ff94c80e5bd0444cdc17d/5.10/windows/LTSC2022/Dockerfile) + +- [`5.9.2`, `5.9`, `5.9.2-jammy`, `5.9-jammy`](https://github.com/apple/swift-docker/blob/51f0941d5f6d92af9df8aa89fa75841f5036c127/5.9/ubuntu/22.04/Dockerfile) + +- [`5.9.2-slim`, `5.9-slim`, `5.9.2-jammy-slim`, `5.9-jammy-slim`](https://github.com/apple/swift-docker/blob/51f0941d5f6d92af9df8aa89fa75841f5036c127/5.9/ubuntu/22.04/slim/Dockerfile) + +- [`5.9.2-focal-slim`, `5.9-focal-slim`](https://github.com/apple/swift-docker/blob/51f0941d5f6d92af9df8aa89fa75841f5036c127/5.9/ubuntu/20.04/slim/Dockerfile) + +- [`5.9.2-focal`, `5.9-focal`](https://github.com/apple/swift-docker/blob/51f0941d5f6d92af9df8aa89fa75841f5036c127/5.9/ubuntu/20.04/Dockerfile) + +- [`5.9.2-amazonlinux2`, `5.9-amazonlinux2`](https://github.com/apple/swift-docker/blob/51f0941d5f6d92af9df8aa89fa75841f5036c127/5.9/amazonlinux/2/Dockerfile) + +- [`5.9.2-amazonlinux2-slim`, `5.9-amazonlinux2-slim`](https://github.com/apple/swift-docker/blob/51f0941d5f6d92af9df8aa89fa75841f5036c127/5.9/amazonlinux/2/slim/Dockerfile) + +- [`5.9.2-rhel-ubi9`, `5.9-rhel-ubi9`](https://github.com/apple/swift-docker/blob/51f0941d5f6d92af9df8aa89fa75841f5036c127/5.9/rhel-ubi/9/Dockerfile) + +- [`5.9.2-rhel-ubi9-slim`, `5.9-rhel-ubi9-slim`](https://github.com/apple/swift-docker/blob/51f0941d5f6d92af9df8aa89fa75841f5036c127/5.9/rhel-ubi/9/slim/Dockerfile) + +- [`5.9.2-windowsservercore-ltsc2022`, `5.9-windowsservercore-ltsc2022`](https://github.com/apple/swift-docker/blob/51f0941d5f6d92af9df8aa89fa75841f5036c127/5.9/windows/LTSC2022/Dockerfile) # Quick reference (cont.) @@ -160,7 +190,9 @@ The `swift` images come in many flavors, each designed for a specific use case. 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. -Some of these tags may have names like focal or jammy 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. +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. + +Some of these tags may have names like 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. ## `swift:-slim` diff --git a/swift/metadata.json b/swift/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/swift/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/swipl/README.md b/swipl/README.md index 53746127a8c0..56dc8b89ef37 100644 --- a/swipl/README.md +++ b/swipl/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`latest`, `9.1.19`](https://github.com/SWI-Prolog/docker-swipl/blob/aed2f55c031507e8fe2a2fede471ffbb5ced5af0/9.1.19/bullseye/Dockerfile) -- [`stable`, `9.0.4`](https://github.com/SWI-Prolog/docker-swipl/blob/aed2f55c031507e8fe2a2fede471ffbb5ced5af0/9.0.4/bullseye/Dockerfile) +- [`latest`, `9.3.23`](https://github.com/SWI-Prolog/docker-swipl/blob/b1a43b5121847a6ca5db26c4651149a1c813ae6a/9.3.23/bookworm/Dockerfile) + +- [`stable`, `9.2.9`](https://github.com/SWI-Prolog/docker-swipl/blob/b1a43b5121847a6ca5db26c4651149a1c813ae6a/9.2.9/bookworm/Dockerfile) # Quick reference (cont.) diff --git a/swipl/metadata.json b/swipl/metadata.json new file mode 100644 index 000000000000..39ac749c7f11 --- /dev/null +++ b/swipl/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "languages-and-frameworks" + ] + } +} diff --git a/teamspeak/README.md b/teamspeak/README.md index 4e8cb268ef31..87517278e4ef 100644 --- a/teamspeak/README.md +++ b/teamspeak/README.md @@ -24,7 +24,7 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.13`, `3.13.7`, `latest`](https://github.com/TeamSpeak-Systems/teamspeak-linux-docker-images/blob/f5f1e7f6142e8eeebb8d46d7b493b5d3ec01d599/alpine/Dockerfile) +**No supported tags** # Quick reference (cont.) @@ -32,7 +32,7 @@ WARNING: [https://github.com/TeamSpeak-Systems/teamspeak-linux-docker-images/issues](https://github.com/TeamSpeak-Systems/teamspeak-linux-docker-images/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/teamspeak/) + **No supported architectures** - **Published image artifact details**: [repo-info repo's `repos/teamspeak/` directory](https://github.com/docker-library/repo-info/blob/master/repos/teamspeak) ([history](https://github.com/docker-library/repo-info/commits/master/repos/teamspeak)) @@ -83,12 +83,11 @@ The TeamSpeak server log is available through Docker's container log: $ docker logs some-teamspeak ``` -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `teamspeak`: +Example `compose.yaml` for `teamspeak`: ```yaml -version: '3.1' services: teamspeak: image: teamspeak @@ -114,9 +113,7 @@ services: MYSQL_DATABASE: teamspeak ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/0975c9ae2481c3f988c17d01d62075c9bf772ebb/teamspeak/stack.yml) - -Run `docker stack deploy -c stack.yml teamspeak` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `swarm-ip:9987`, `localhost:9987`, or `host-ip:9987` (as appropriate) with a TeamSpeak client. +Run `docker compose up`, wait for it to initialize completely, and visit `localhost:9987` or `host-ip:9987` (as appropriate) with a TeamSpeak client. ## Environment Variables @@ -198,8 +195,8 @@ When the whole data directory (`/var/ts3server/`) has been mounted somewhere, th Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `teamspeak` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: diff --git a/teamspeak/stack.yml b/teamspeak/compose.yaml similarity index 97% rename from teamspeak/stack.yml rename to teamspeak/compose.yaml index 5b1287a6eb5b..930cfdf7a50a 100644 --- a/teamspeak/stack.yml +++ b/teamspeak/compose.yaml @@ -1,4 +1,3 @@ -version: '3.1' services: teamspeak: image: teamspeak diff --git a/teamspeak/content.md b/teamspeak/content.md index eb3aa7d34373..f7b372c185bc 100644 --- a/teamspeak/content.md +++ b/teamspeak/content.md @@ -36,9 +36,9 @@ The TeamSpeak server log is available through Docker's container log: $ docker logs some-%%REPO%% ``` -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `swarm-ip:9987`, `localhost:9987`, or `host-ip:9987` (as appropriate) with a TeamSpeak client. +Run `docker compose up`, wait for it to initialize completely, and visit `localhost:9987` or `host-ip:9987` (as appropriate) with a TeamSpeak client. ## Environment Variables @@ -120,8 +120,8 @@ When the whole data directory (`/var/ts3server/`) has been mounted somewhere, th Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `%%REPO%%` images to familiarize themselves with the options available, including: -- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). 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. -- 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/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database 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. +- Let Docker manage the storage of your database data [by writing the database files 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. +- 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 database 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. 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: diff --git a/teamspeak/metadata.json b/teamspeak/metadata.json new file mode 100644 index 000000000000..e90624aca4ca --- /dev/null +++ b/teamspeak/metadata.json @@ -0,0 +1,5 @@ +{ + "hub": { + "categories": [] + } +} diff --git a/telegraf/README.md b/telegraf/README.md index 8cc7bf9a1aa8..f5bc8f365db9 100644 --- a/telegraf/README.md +++ b/telegraf/README.md @@ -24,12 +24,17 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.26`, `1.26.3`](https://github.com/influxdata/influxdata-docker/blob/d636186a1671138ec12a043f89af70e655949f89/telegraf/1.26/Dockerfile) -- [`1.26-alpine`, `1.26.3-alpine`](https://github.com/influxdata/influxdata-docker/blob/d636186a1671138ec12a043f89af70e655949f89/telegraf/1.26/alpine/Dockerfile) -- [`1.27`, `1.27.4`](https://github.com/influxdata/influxdata-docker/blob/d636186a1671138ec12a043f89af70e655949f89/telegraf/1.27/Dockerfile) -- [`1.27-alpine`, `1.27.4-alpine`](https://github.com/influxdata/influxdata-docker/blob/d636186a1671138ec12a043f89af70e655949f89/telegraf/1.27/alpine/Dockerfile) -- [`1.28`, `1.28.5`, `latest`](https://github.com/influxdata/influxdata-docker/blob/d636186a1671138ec12a043f89af70e655949f89/telegraf/1.28/Dockerfile) -- [`1.28-alpine`, `1.28.5-alpine`, `alpine`](https://github.com/influxdata/influxdata-docker/blob/d636186a1671138ec12a043f89af70e655949f89/telegraf/1.28/alpine/Dockerfile) +- [`1.33`, `1.33.3`](https://github.com/influxdata/influxdata-docker/blob/c5e3dc7bcc6279366885b846c5b732ba02316aa9/telegraf/1.33/Dockerfile) + +- [`1.33-alpine`, `1.33.3-alpine`](https://github.com/influxdata/influxdata-docker/blob/c5e3dc7bcc6279366885b846c5b732ba02316aa9/telegraf/1.33/alpine/Dockerfile) + +- [`1.34`, `1.34.4`](https://github.com/influxdata/influxdata-docker/blob/c5e3dc7bcc6279366885b846c5b732ba02316aa9/telegraf/1.34/Dockerfile) + +- [`1.34-alpine`, `1.34.4-alpine`](https://github.com/influxdata/influxdata-docker/blob/c5e3dc7bcc6279366885b846c5b732ba02316aa9/telegraf/1.34/alpine/Dockerfile) + +- [`1.35`, `1.35.0`, `latest`](https://github.com/influxdata/influxdata-docker/blob/c5e3dc7bcc6279366885b846c5b732ba02316aa9/telegraf/1.35/Dockerfile) + +- [`1.35-alpine`, `1.35.0-alpine`, `alpine`](https://github.com/influxdata/influxdata-docker/blob/c5e3dc7bcc6279366885b846c5b732ba02316aa9/telegraf/1.35/alpine/Dockerfile) # Quick reference (cont.) diff --git a/telegraf/metadata.json b/telegraf/metadata.json new file mode 100644 index 000000000000..5f9ae9afb8e1 --- /dev/null +++ b/telegraf/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "monitoring-and-observability" + ] + } +} diff --git a/tomcat/README.md b/tomcat/README.md index f0dc11b04568..8e0fc1bd976a 100644 --- a/tomcat/README.md +++ b/tomcat/README.md @@ -24,50 +24,85 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`11.0.0-M14-jdk21-temurin-jammy`, `11.0.0-jdk21-temurin-jammy`, `11.0-jdk21-temurin-jammy`, `11.0.0-M14-jdk21-temurin`, `11.0.0-jdk21-temurin`, `11.0-jdk21-temurin`, `11.0.0-M14-jdk21`, `11.0.0-jdk21`, `11.0-jdk21`, `11.0.0-M14`, `11.0.0`, `11.0`](https://github.com/docker-library/tomcat/blob/07bfc6a63637a73fe9f15fe8f69d22629305e9ab/11.0/jdk21/temurin-jammy/Dockerfile) -- [`11.0.0-M14-jre21-temurin-jammy`, `11.0.0-jre21-temurin-jammy`, `11.0-jre21-temurin-jammy`, `11.0.0-M14-jre21-temurin`, `11.0.0-jre21-temurin`, `11.0-jre21-temurin`, `11.0.0-M14-jre21`, `11.0.0-jre21`, `11.0-jre21`](https://github.com/docker-library/tomcat/blob/07bfc6a63637a73fe9f15fe8f69d22629305e9ab/11.0/jre21/temurin-jammy/Dockerfile) -- [`10.1.16-jdk21-temurin-jammy`, `10.1-jdk21-temurin-jammy`, `10-jdk21-temurin-jammy`, `jdk21-temurin-jammy`, `10.1.16-jdk21-temurin`, `10.1-jdk21-temurin`, `10-jdk21-temurin`, `jdk21-temurin`, `10.1.16-jdk21`, `10.1-jdk21`, `10-jdk21`, `jdk21`, `10.1.16`, `10.1`, `10`, `latest`](https://github.com/docker-library/tomcat/blob/a660cb89eebedecb9e40aa1fca003b5f42ef7462/10.1/jdk21/temurin-jammy/Dockerfile) -- [`10.1.16-jre21-temurin-jammy`, `10.1-jre21-temurin-jammy`, `10-jre21-temurin-jammy`, `jre21-temurin-jammy`, `10.1.16-jre21-temurin`, `10.1-jre21-temurin`, `10-jre21-temurin`, `jre21-temurin`, `10.1.16-jre21`, `10.1-jre21`, `10-jre21`, `jre21`](https://github.com/docker-library/tomcat/blob/a660cb89eebedecb9e40aa1fca003b5f42ef7462/10.1/jre21/temurin-jammy/Dockerfile) -- [`10.1.16-jdk17-temurin-jammy`, `10.1-jdk17-temurin-jammy`, `10-jdk17-temurin-jammy`, `jdk17-temurin-jammy`, `10.1.16-jdk17-temurin`, `10.1-jdk17-temurin`, `10-jdk17-temurin`, `jdk17-temurin`, `10.1.16-jdk17`, `10.1-jdk17`, `10-jdk17`, `jdk17`](https://github.com/docker-library/tomcat/blob/a660cb89eebedecb9e40aa1fca003b5f42ef7462/10.1/jdk17/temurin-jammy/Dockerfile) -- [`10.1.16-jre17-temurin-jammy`, `10.1-jre17-temurin-jammy`, `10-jre17-temurin-jammy`, `jre17-temurin-jammy`, `10.1.16-jre17-temurin`, `10.1-jre17-temurin`, `10-jre17-temurin`, `jre17-temurin`, `10.1.16-jre17`, `10.1-jre17`, `10-jre17`, `jre17`](https://github.com/docker-library/tomcat/blob/a660cb89eebedecb9e40aa1fca003b5f42ef7462/10.1/jre17/temurin-jammy/Dockerfile) -- [`10.1.16-jdk11-temurin-jammy`, `10.1-jdk11-temurin-jammy`, `10-jdk11-temurin-jammy`, `jdk11-temurin-jammy`, `10.1.16-jdk11-temurin`, `10.1-jdk11-temurin`, `10-jdk11-temurin`, `jdk11-temurin`, `10.1.16-jdk11`, `10.1-jdk11`, `10-jdk11`, `jdk11`](https://github.com/docker-library/tomcat/blob/a660cb89eebedecb9e40aa1fca003b5f42ef7462/10.1/jdk11/temurin-jammy/Dockerfile) -- [`10.1.16-jre11-temurin-jammy`, `10.1-jre11-temurin-jammy`, `10-jre11-temurin-jammy`, `jre11-temurin-jammy`, `10.1.16-jre11-temurin`, `10.1-jre11-temurin`, `10-jre11-temurin`, `jre11-temurin`, `10.1.16-jre11`, `10.1-jre11`, `10-jre11`, `jre11`](https://github.com/docker-library/tomcat/blob/a660cb89eebedecb9e40aa1fca003b5f42ef7462/10.1/jre11/temurin-jammy/Dockerfile) -- [`9.0.83-jdk21-temurin-jammy`, `9.0-jdk21-temurin-jammy`, `9-jdk21-temurin-jammy`, `9.0.83-jdk21-temurin`, `9.0-jdk21-temurin`, `9-jdk21-temurin`, `9.0.83-jdk21`, `9.0-jdk21`, `9-jdk21`, `9.0.83`, `9.0`, `9`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk21/temurin-jammy/Dockerfile) -- [`9.0.83-jre21-temurin-jammy`, `9.0-jre21-temurin-jammy`, `9-jre21-temurin-jammy`, `9.0.83-jre21-temurin`, `9.0-jre21-temurin`, `9-jre21-temurin`, `9.0.83-jre21`, `9.0-jre21`, `9-jre21`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jre21/temurin-jammy/Dockerfile) -- [`9.0.83-jdk21-corretto-al2`, `9.0-jdk21-corretto-al2`, `9-jdk21-corretto-al2`, `9.0.83-jdk21-corretto`, `9.0-jdk21-corretto`, `9-jdk21-corretto`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk21/corretto-al2/Dockerfile) -- [`9.0.83-jdk17-temurin-jammy`, `9.0-jdk17-temurin-jammy`, `9-jdk17-temurin-jammy`, `9.0.83-jdk17-temurin`, `9.0-jdk17-temurin`, `9-jdk17-temurin`, `9.0.83-jdk17`, `9.0-jdk17`, `9-jdk17`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk17/temurin-jammy/Dockerfile) -- [`9.0.83-jre17-temurin-jammy`, `9.0-jre17-temurin-jammy`, `9-jre17-temurin-jammy`, `9.0.83-jre17-temurin`, `9.0-jre17-temurin`, `9-jre17-temurin`, `9.0.83-jre17`, `9.0-jre17`, `9-jre17`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jre17/temurin-jammy/Dockerfile) -- [`9.0.83-jdk17-temurin-focal`, `9.0-jdk17-temurin-focal`, `9-jdk17-temurin-focal`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk17/temurin-focal/Dockerfile) -- [`9.0.83-jre17-temurin-focal`, `9.0-jre17-temurin-focal`, `9-jre17-temurin-focal`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jre17/temurin-focal/Dockerfile) -- [`9.0.83-jdk17-corretto-al2`, `9.0-jdk17-corretto-al2`, `9-jdk17-corretto-al2`, `9.0.83-jdk17-corretto`, `9.0-jdk17-corretto`, `9-jdk17-corretto`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk17/corretto-al2/Dockerfile) -- [`9.0.83-jdk11-temurin-jammy`, `9.0-jdk11-temurin-jammy`, `9-jdk11-temurin-jammy`, `9.0.83-jdk11-temurin`, `9.0-jdk11-temurin`, `9-jdk11-temurin`, `9.0.83-jdk11`, `9.0-jdk11`, `9-jdk11`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk11/temurin-jammy/Dockerfile) -- [`9.0.83-jre11-temurin-jammy`, `9.0-jre11-temurin-jammy`, `9-jre11-temurin-jammy`, `9.0.83-jre11-temurin`, `9.0-jre11-temurin`, `9-jre11-temurin`, `9.0.83-jre11`, `9.0-jre11`, `9-jre11`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jre11/temurin-jammy/Dockerfile) -- [`9.0.83-jdk11-temurin-focal`, `9.0-jdk11-temurin-focal`, `9-jdk11-temurin-focal`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk11/temurin-focal/Dockerfile) -- [`9.0.83-jre11-temurin-focal`, `9.0-jre11-temurin-focal`, `9-jre11-temurin-focal`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jre11/temurin-focal/Dockerfile) -- [`9.0.83-jdk11-corretto-al2`, `9.0-jdk11-corretto-al2`, `9-jdk11-corretto-al2`, `9.0.83-jdk11-corretto`, `9.0-jdk11-corretto`, `9-jdk11-corretto`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk11/corretto-al2/Dockerfile) -- [`9.0.83-jdk8-temurin-jammy`, `9.0-jdk8-temurin-jammy`, `9-jdk8-temurin-jammy`, `9.0.83-jdk8-temurin`, `9.0-jdk8-temurin`, `9-jdk8-temurin`, `9.0.83-jdk8`, `9.0-jdk8`, `9-jdk8`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk8/temurin-jammy/Dockerfile) -- [`9.0.83-jre8-temurin-jammy`, `9.0-jre8-temurin-jammy`, `9-jre8-temurin-jammy`, `9.0.83-jre8-temurin`, `9.0-jre8-temurin`, `9-jre8-temurin`, `9.0.83-jre8`, `9.0-jre8`, `9-jre8`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jre8/temurin-jammy/Dockerfile) -- [`9.0.83-jdk8-temurin-focal`, `9.0-jdk8-temurin-focal`, `9-jdk8-temurin-focal`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk8/temurin-focal/Dockerfile) -- [`9.0.83-jre8-temurin-focal`, `9.0-jre8-temurin-focal`, `9-jre8-temurin-focal`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jre8/temurin-focal/Dockerfile) -- [`9.0.83-jdk8-corretto-al2`, `9.0-jdk8-corretto-al2`, `9-jdk8-corretto-al2`, `9.0.83-jdk8-corretto`, `9.0-jdk8-corretto`, `9-jdk8-corretto`](https://github.com/docker-library/tomcat/blob/10b7fac0da8220b0ecd528c55f0f0fb229d92880/9.0/jdk8/corretto-al2/Dockerfile) -- [`8.5.96-jdk21-temurin-jammy`, `8.5-jdk21-temurin-jammy`, `8-jdk21-temurin-jammy`, `8.5.96-jdk21-temurin`, `8.5-jdk21-temurin`, `8-jdk21-temurin`, `8.5.96-jdk21`, `8.5-jdk21`, `8-jdk21`, `8.5.96`, `8.5`, `8`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk21/temurin-jammy/Dockerfile) -- [`8.5.96-jre21-temurin-jammy`, `8.5-jre21-temurin-jammy`, `8-jre21-temurin-jammy`, `8.5.96-jre21-temurin`, `8.5-jre21-temurin`, `8-jre21-temurin`, `8.5.96-jre21`, `8.5-jre21`, `8-jre21`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jre21/temurin-jammy/Dockerfile) -- [`8.5.96-jdk21-corretto-al2`, `8.5-jdk21-corretto-al2`, `8-jdk21-corretto-al2`, `8.5.96-jdk21-corretto`, `8.5-jdk21-corretto`, `8-jdk21-corretto`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk21/corretto-al2/Dockerfile) -- [`8.5.96-jdk17-temurin-jammy`, `8.5-jdk17-temurin-jammy`, `8-jdk17-temurin-jammy`, `8.5.96-jdk17-temurin`, `8.5-jdk17-temurin`, `8-jdk17-temurin`, `8.5.96-jdk17`, `8.5-jdk17`, `8-jdk17`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk17/temurin-jammy/Dockerfile) -- [`8.5.96-jre17-temurin-jammy`, `8.5-jre17-temurin-jammy`, `8-jre17-temurin-jammy`, `8.5.96-jre17-temurin`, `8.5-jre17-temurin`, `8-jre17-temurin`, `8.5.96-jre17`, `8.5-jre17`, `8-jre17`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jre17/temurin-jammy/Dockerfile) -- [`8.5.96-jdk17-temurin-focal`, `8.5-jdk17-temurin-focal`, `8-jdk17-temurin-focal`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk17/temurin-focal/Dockerfile) -- [`8.5.96-jre17-temurin-focal`, `8.5-jre17-temurin-focal`, `8-jre17-temurin-focal`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jre17/temurin-focal/Dockerfile) -- [`8.5.96-jdk17-corretto-al2`, `8.5-jdk17-corretto-al2`, `8-jdk17-corretto-al2`, `8.5.96-jdk17-corretto`, `8.5-jdk17-corretto`, `8-jdk17-corretto`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk17/corretto-al2/Dockerfile) -- [`8.5.96-jdk11-temurin-jammy`, `8.5-jdk11-temurin-jammy`, `8-jdk11-temurin-jammy`, `8.5.96-jdk11-temurin`, `8.5-jdk11-temurin`, `8-jdk11-temurin`, `8.5.96-jdk11`, `8.5-jdk11`, `8-jdk11`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk11/temurin-jammy/Dockerfile) -- [`8.5.96-jre11-temurin-jammy`, `8.5-jre11-temurin-jammy`, `8-jre11-temurin-jammy`, `8.5.96-jre11-temurin`, `8.5-jre11-temurin`, `8-jre11-temurin`, `8.5.96-jre11`, `8.5-jre11`, `8-jre11`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jre11/temurin-jammy/Dockerfile) -- [`8.5.96-jdk11-temurin-focal`, `8.5-jdk11-temurin-focal`, `8-jdk11-temurin-focal`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk11/temurin-focal/Dockerfile) -- [`8.5.96-jre11-temurin-focal`, `8.5-jre11-temurin-focal`, `8-jre11-temurin-focal`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jre11/temurin-focal/Dockerfile) -- [`8.5.96-jdk11-corretto-al2`, `8.5-jdk11-corretto-al2`, `8-jdk11-corretto-al2`, `8.5.96-jdk11-corretto`, `8.5-jdk11-corretto`, `8-jdk11-corretto`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk11/corretto-al2/Dockerfile) -- [`8.5.96-jdk8-temurin-jammy`, `8.5-jdk8-temurin-jammy`, `8-jdk8-temurin-jammy`, `8.5.96-jdk8-temurin`, `8.5-jdk8-temurin`, `8-jdk8-temurin`, `8.5.96-jdk8`, `8.5-jdk8`, `8-jdk8`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk8/temurin-jammy/Dockerfile) -- [`8.5.96-jre8-temurin-jammy`, `8.5-jre8-temurin-jammy`, `8-jre8-temurin-jammy`, `8.5.96-jre8-temurin`, `8.5-jre8-temurin`, `8-jre8-temurin`, `8.5.96-jre8`, `8.5-jre8`, `8-jre8`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jre8/temurin-jammy/Dockerfile) -- [`8.5.96-jdk8-temurin-focal`, `8.5-jdk8-temurin-focal`, `8-jdk8-temurin-focal`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk8/temurin-focal/Dockerfile) -- [`8.5.96-jre8-temurin-focal`, `8.5-jre8-temurin-focal`, `8-jre8-temurin-focal`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jre8/temurin-focal/Dockerfile) -- [`8.5.96-jdk8-corretto-al2`, `8.5-jdk8-corretto-al2`, `8-jdk8-corretto-al2`, `8.5.96-jdk8-corretto`, `8.5-jdk8-corretto`, `8-jdk8-corretto`](https://github.com/docker-library/tomcat/blob/0c3f44cacfe98b75aae3c0447b76339dc7232b33/8.5/jdk8/corretto-al2/Dockerfile) +- [`11.0.8-jdk21-temurin-noble`, `11.0-jdk21-temurin-noble`, `11-jdk21-temurin-noble`, `jdk21-temurin-noble`, `11.0.8-jdk21-temurin`, `11.0-jdk21-temurin`, `11-jdk21-temurin`, `jdk21-temurin`, `11.0.8-jdk21`, `11.0-jdk21`, `11-jdk21`, `jdk21`, `11.0.8`, `11.0`, `11`, `latest`](https://github.com/docker-library/tomcat/blob/b63e91319c234d5378a4bea81be915a56e30746b/11.0/jdk21/temurin-noble/Dockerfile) + +- [`11.0.8-jre21-temurin-noble`, `11.0-jre21-temurin-noble`, `11-jre21-temurin-noble`, `jre21-temurin-noble`, `11.0.8-jre21-temurin`, `11.0-jre21-temurin`, `11-jre21-temurin`, `jre21-temurin`, `11.0.8-jre21`, `11.0-jre21`, `11-jre21`, `jre21`](https://github.com/docker-library/tomcat/blob/b63e91319c234d5378a4bea81be915a56e30746b/11.0/jre21/temurin-noble/Dockerfile) + +- [`11.0.8-jdk21-temurin-jammy`, `11.0-jdk21-temurin-jammy`, `11-jdk21-temurin-jammy`, `jdk21-temurin-jammy`](https://github.com/docker-library/tomcat/blob/b63e91319c234d5378a4bea81be915a56e30746b/11.0/jdk21/temurin-jammy/Dockerfile) + +- [`11.0.8-jre21-temurin-jammy`, `11.0-jre21-temurin-jammy`, `11-jre21-temurin-jammy`, `jre21-temurin-jammy`](https://github.com/docker-library/tomcat/blob/b63e91319c234d5378a4bea81be915a56e30746b/11.0/jre21/temurin-jammy/Dockerfile) + +- [`11.0.8-jdk17-temurin-noble`, `11.0-jdk17-temurin-noble`, `11-jdk17-temurin-noble`, `jdk17-temurin-noble`, `11.0.8-jdk17-temurin`, `11.0-jdk17-temurin`, `11-jdk17-temurin`, `jdk17-temurin`, `11.0.8-jdk17`, `11.0-jdk17`, `11-jdk17`, `jdk17`](https://github.com/docker-library/tomcat/blob/b63e91319c234d5378a4bea81be915a56e30746b/11.0/jdk17/temurin-noble/Dockerfile) + +- [`11.0.8-jre17-temurin-noble`, `11.0-jre17-temurin-noble`, `11-jre17-temurin-noble`, `jre17-temurin-noble`, `11.0.8-jre17-temurin`, `11.0-jre17-temurin`, `11-jre17-temurin`, `jre17-temurin`, `11.0.8-jre17`, `11.0-jre17`, `11-jre17`, `jre17`](https://github.com/docker-library/tomcat/blob/b63e91319c234d5378a4bea81be915a56e30746b/11.0/jre17/temurin-noble/Dockerfile) + +- [`11.0.8-jdk17-temurin-jammy`, `11.0-jdk17-temurin-jammy`, `11-jdk17-temurin-jammy`, `jdk17-temurin-jammy`](https://github.com/docker-library/tomcat/blob/b63e91319c234d5378a4bea81be915a56e30746b/11.0/jdk17/temurin-jammy/Dockerfile) + +- [`11.0.8-jre17-temurin-jammy`, `11.0-jre17-temurin-jammy`, `11-jre17-temurin-jammy`, `jre17-temurin-jammy`](https://github.com/docker-library/tomcat/blob/b63e91319c234d5378a4bea81be915a56e30746b/11.0/jre17/temurin-jammy/Dockerfile) + +- [`10.1.42-jdk21-temurin-noble`, `10.1-jdk21-temurin-noble`, `10-jdk21-temurin-noble`, `10.1.42-jdk21-temurin`, `10.1-jdk21-temurin`, `10-jdk21-temurin`, `10.1.42-jdk21`, `10.1-jdk21`, `10-jdk21`, `10.1.42`, `10.1`, `10`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jdk21/temurin-noble/Dockerfile) + +- [`10.1.42-jre21-temurin-noble`, `10.1-jre21-temurin-noble`, `10-jre21-temurin-noble`, `10.1.42-jre21-temurin`, `10.1-jre21-temurin`, `10-jre21-temurin`, `10.1.42-jre21`, `10.1-jre21`, `10-jre21`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jre21/temurin-noble/Dockerfile) + +- [`10.1.42-jdk21-temurin-jammy`, `10.1-jdk21-temurin-jammy`, `10-jdk21-temurin-jammy`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jdk21/temurin-jammy/Dockerfile) + +- [`10.1.42-jre21-temurin-jammy`, `10.1-jre21-temurin-jammy`, `10-jre21-temurin-jammy`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jre21/temurin-jammy/Dockerfile) + +- [`10.1.42-jdk17-temurin-noble`, `10.1-jdk17-temurin-noble`, `10-jdk17-temurin-noble`, `10.1.42-jdk17-temurin`, `10.1-jdk17-temurin`, `10-jdk17-temurin`, `10.1.42-jdk17`, `10.1-jdk17`, `10-jdk17`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jdk17/temurin-noble/Dockerfile) + +- [`10.1.42-jre17-temurin-noble`, `10.1-jre17-temurin-noble`, `10-jre17-temurin-noble`, `10.1.42-jre17-temurin`, `10.1-jre17-temurin`, `10-jre17-temurin`, `10.1.42-jre17`, `10.1-jre17`, `10-jre17`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jre17/temurin-noble/Dockerfile) + +- [`10.1.42-jdk17-temurin-jammy`, `10.1-jdk17-temurin-jammy`, `10-jdk17-temurin-jammy`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jdk17/temurin-jammy/Dockerfile) + +- [`10.1.42-jre17-temurin-jammy`, `10.1-jre17-temurin-jammy`, `10-jre17-temurin-jammy`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jre17/temurin-jammy/Dockerfile) + +- [`10.1.42-jdk11-temurin-noble`, `10.1-jdk11-temurin-noble`, `10-jdk11-temurin-noble`, `10.1.42-jdk11-temurin`, `10.1-jdk11-temurin`, `10-jdk11-temurin`, `10.1.42-jdk11`, `10.1-jdk11`, `10-jdk11`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jdk11/temurin-noble/Dockerfile) + +- [`10.1.42-jre11-temurin-noble`, `10.1-jre11-temurin-noble`, `10-jre11-temurin-noble`, `10.1.42-jre11-temurin`, `10.1-jre11-temurin`, `10-jre11-temurin`, `10.1.42-jre11`, `10.1-jre11`, `10-jre11`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jre11/temurin-noble/Dockerfile) + +- [`10.1.42-jdk11-temurin-jammy`, `10.1-jdk11-temurin-jammy`, `10-jdk11-temurin-jammy`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jdk11/temurin-jammy/Dockerfile) + +- [`10.1.42-jre11-temurin-jammy`, `10.1-jre11-temurin-jammy`, `10-jre11-temurin-jammy`](https://github.com/docker-library/tomcat/blob/084d3348c4952cc064ed7daab88964af510bd332/10.1/jre11/temurin-jammy/Dockerfile) + +- [`9.0.106-jdk21-temurin-noble`, `9.0-jdk21-temurin-noble`, `9-jdk21-temurin-noble`, `9.0.106-jdk21-temurin`, `9.0-jdk21-temurin`, `9-jdk21-temurin`, `9.0.106-jdk21`, `9.0-jdk21`, `9-jdk21`, `9.0.106`, `9.0`, `9`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk21/temurin-noble/Dockerfile) + +- [`9.0.106-jre21-temurin-noble`, `9.0-jre21-temurin-noble`, `9-jre21-temurin-noble`, `9.0.106-jre21-temurin`, `9.0-jre21-temurin`, `9-jre21-temurin`, `9.0.106-jre21`, `9.0-jre21`, `9-jre21`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jre21/temurin-noble/Dockerfile) + +- [`9.0.106-jdk21-temurin-jammy`, `9.0-jdk21-temurin-jammy`, `9-jdk21-temurin-jammy`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk21/temurin-jammy/Dockerfile) + +- [`9.0.106-jre21-temurin-jammy`, `9.0-jre21-temurin-jammy`, `9-jre21-temurin-jammy`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jre21/temurin-jammy/Dockerfile) + +- [`9.0.106-jdk21-corretto-al2`, `9.0-jdk21-corretto-al2`, `9-jdk21-corretto-al2`, `9.0.106-jdk21-corretto`, `9.0-jdk21-corretto`, `9-jdk21-corretto`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk21/corretto-al2/Dockerfile) + +- [`9.0.106-jdk17-temurin-noble`, `9.0-jdk17-temurin-noble`, `9-jdk17-temurin-noble`, `9.0.106-jdk17-temurin`, `9.0-jdk17-temurin`, `9-jdk17-temurin`, `9.0.106-jdk17`, `9.0-jdk17`, `9-jdk17`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk17/temurin-noble/Dockerfile) + +- [`9.0.106-jre17-temurin-noble`, `9.0-jre17-temurin-noble`, `9-jre17-temurin-noble`, `9.0.106-jre17-temurin`, `9.0-jre17-temurin`, `9-jre17-temurin`, `9.0.106-jre17`, `9.0-jre17`, `9-jre17`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jre17/temurin-noble/Dockerfile) + +- [`9.0.106-jdk17-temurin-jammy`, `9.0-jdk17-temurin-jammy`, `9-jdk17-temurin-jammy`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk17/temurin-jammy/Dockerfile) + +- [`9.0.106-jre17-temurin-jammy`, `9.0-jre17-temurin-jammy`, `9-jre17-temurin-jammy`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jre17/temurin-jammy/Dockerfile) + +- [`9.0.106-jdk17-corretto-al2`, `9.0-jdk17-corretto-al2`, `9-jdk17-corretto-al2`, `9.0.106-jdk17-corretto`, `9.0-jdk17-corretto`, `9-jdk17-corretto`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk17/corretto-al2/Dockerfile) + +- [`9.0.106-jdk11-temurin-noble`, `9.0-jdk11-temurin-noble`, `9-jdk11-temurin-noble`, `9.0.106-jdk11-temurin`, `9.0-jdk11-temurin`, `9-jdk11-temurin`, `9.0.106-jdk11`, `9.0-jdk11`, `9-jdk11`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk11/temurin-noble/Dockerfile) + +- [`9.0.106-jre11-temurin-noble`, `9.0-jre11-temurin-noble`, `9-jre11-temurin-noble`, `9.0.106-jre11-temurin`, `9.0-jre11-temurin`, `9-jre11-temurin`, `9.0.106-jre11`, `9.0-jre11`, `9-jre11`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jre11/temurin-noble/Dockerfile) + +- [`9.0.106-jdk11-temurin-jammy`, `9.0-jdk11-temurin-jammy`, `9-jdk11-temurin-jammy`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk11/temurin-jammy/Dockerfile) + +- [`9.0.106-jre11-temurin-jammy`, `9.0-jre11-temurin-jammy`, `9-jre11-temurin-jammy`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jre11/temurin-jammy/Dockerfile) + +- [`9.0.106-jdk11-corretto-al2`, `9.0-jdk11-corretto-al2`, `9-jdk11-corretto-al2`, `9.0.106-jdk11-corretto`, `9.0-jdk11-corretto`, `9-jdk11-corretto`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk11/corretto-al2/Dockerfile) + +- [`9.0.106-jdk8-temurin-noble`, `9.0-jdk8-temurin-noble`, `9-jdk8-temurin-noble`, `9.0.106-jdk8-temurin`, `9.0-jdk8-temurin`, `9-jdk8-temurin`, `9.0.106-jdk8`, `9.0-jdk8`, `9-jdk8`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk8/temurin-noble/Dockerfile) + +- [`9.0.106-jre8-temurin-noble`, `9.0-jre8-temurin-noble`, `9-jre8-temurin-noble`, `9.0.106-jre8-temurin`, `9.0-jre8-temurin`, `9-jre8-temurin`, `9.0.106-jre8`, `9.0-jre8`, `9-jre8`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jre8/temurin-noble/Dockerfile) + +- [`9.0.106-jdk8-temurin-jammy`, `9.0-jdk8-temurin-jammy`, `9-jdk8-temurin-jammy`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk8/temurin-jammy/Dockerfile) + +- [`9.0.106-jre8-temurin-jammy`, `9.0-jre8-temurin-jammy`, `9-jre8-temurin-jammy`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jre8/temurin-jammy/Dockerfile) + +- [`9.0.106-jdk8-corretto-al2`, `9.0-jdk8-corretto-al2`, `9-jdk8-corretto-al2`, `9.0.106-jdk8-corretto`, `9.0-jdk8-corretto`, `9-jdk8-corretto`](https://github.com/docker-library/tomcat/blob/2c6ae9e10bdc2b86109c376094327f998d40c5e7/9.0/jdk8/corretto-al2/Dockerfile) # Quick reference (cont.) @@ -75,7 +110,7 @@ WARNING: [https://github.com/docker-library/tomcat/issues](https://github.com/docker-library/tomcat/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/tomcat/), [`arm32v7`](https://hub.docker.com/r/arm32v7/tomcat/), [`arm64v8`](https://hub.docker.com/r/arm64v8/tomcat/), [`ppc64le`](https://hub.docker.com/r/ppc64le/tomcat/), [`s390x`](https://hub.docker.com/r/s390x/tomcat/) + [`amd64`](https://hub.docker.com/r/amd64/tomcat/), [`arm32v7`](https://hub.docker.com/r/arm32v7/tomcat/), [`arm64v8`](https://hub.docker.com/r/arm64v8/tomcat/), [`ppc64le`](https://hub.docker.com/r/ppc64le/tomcat/), [`riscv64`](https://hub.docker.com/r/riscv64/tomcat/), [`s390x`](https://hub.docker.com/r/s390x/tomcat/) - **Published image artifact details**: [repo-info repo's `repos/tomcat/` directory](https://github.com/docker-library/repo-info/blob/master/repos/tomcat) ([history](https://github.com/docker-library/repo-info/commits/master/repos/tomcat)) diff --git a/tomcat/metadata.json b/tomcat/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/tomcat/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/tomee/README.md b/tomee/README.md index e4dbd4d9c003..49e7dccafbc5 100644 --- a/tomee/README.md +++ b/tomee/README.md @@ -24,62 +24,53 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`8.0.16-jre17-Temurin-ubuntu-webprofile`, `8.0.16-Temurin-ubuntu-webprofile`, `8.0.16-jre17-ubuntu-webprofile`, `8.0.16-ubuntu-webprofile`, `8.0.16-jre17-Temurin-webprofile`, `8.0.16-Temurin-webprofile`, `8.0.16-jre17-webprofile`, `8.0.16-webprofile`, `8.0.16-jre17-Temurin-ubuntu`, `8.0.16-Temurin-ubuntu`, `8.0.16-jre17-ubuntu`, `8.0.16-ubuntu`, `8.0.16-jre17-Temurin`, `8.0.16-Temurin`, `8.0.16-jre17`, `8.0.16`, `8.0-jre17-Temurin-ubuntu-webprofile`, `8.0-Temurin-ubuntu-webprofile`, `8.0-jre17-ubuntu-webprofile`, `8.0-ubuntu-webprofile`, `8.0-jre17-Temurin-webprofile`, `8.0-Temurin-webprofile`, `8.0-jre17-webprofile`, `8.0-webprofile`, `8.0-jre17-Temurin-ubuntu`, `8.0-Temurin-ubuntu`, `8.0-jre17-ubuntu`, `8.0-ubuntu`, `8.0-jre17-Temurin`, `8.0-Temurin`, `8.0-jre17`, `8.0`, `8-jre17-Temurin-ubuntu-webprofile`, `8-Temurin-ubuntu-webprofile`, `8-jre17-ubuntu-webprofile`, `8-ubuntu-webprofile`, `8-jre17-Temurin-webprofile`, `8-Temurin-webprofile`, `8-jre17-webprofile`, `8-webprofile`, `8-jre17-Temurin-ubuntu`, `8-Temurin-ubuntu`, `8-jre17-ubuntu`, `8-ubuntu`, `8-jre17-Temurin`, `8-Temurin`, `8-jre17`, `8`, `jre17-Temurin-ubuntu-webprofile`, `Temurin-ubuntu-webprofile`, `jre17-ubuntu-webprofile`, `ubuntu-webprofile`, `jre17-Temurin-webprofile`, `Temurin-webprofile`, `jre17-webprofile`, `webprofile`, `jre17-Temurin-ubuntu`, `Temurin-ubuntu`, `jre17-ubuntu`, `ubuntu`, `jre17-Temurin`, `Temurin`, `jre17`, `latest`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Temurin/ubuntu/webprofile/Dockerfile) -- [`8.0.16-jre17-Temurin-ubuntu-microprofile`, `8.0.16-Temurin-ubuntu-microprofile`, `8.0.16-jre17-ubuntu-microprofile`, `8.0.16-ubuntu-microprofile`, `8.0.16-jre17-Temurin-microprofile`, `8.0.16-Temurin-microprofile`, `8.0.16-jre17-microprofile`, `8.0.16-microprofile`, `8.0-jre17-Temurin-ubuntu-microprofile`, `8.0-Temurin-ubuntu-microprofile`, `8.0-jre17-ubuntu-microprofile`, `8.0-ubuntu-microprofile`, `8.0-jre17-Temurin-microprofile`, `8.0-Temurin-microprofile`, `8.0-jre17-microprofile`, `8.0-microprofile`, `8-jre17-Temurin-ubuntu-microprofile`, `8-Temurin-ubuntu-microprofile`, `8-jre17-ubuntu-microprofile`, `8-ubuntu-microprofile`, `8-jre17-Temurin-microprofile`, `8-Temurin-microprofile`, `8-jre17-microprofile`, `8-microprofile`, `jre17-Temurin-ubuntu-microprofile`, `Temurin-ubuntu-microprofile`, `jre17-ubuntu-microprofile`, `ubuntu-microprofile`, `jre17-Temurin-microprofile`, `Temurin-microprofile`, `jre17-microprofile`, `microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Temurin/ubuntu/microprofile/Dockerfile) -- [`8.0.16-jre17-Temurin-ubuntu-plume`, `8.0.16-Temurin-ubuntu-plume`, `8.0.16-jre17-ubuntu-plume`, `8.0.16-ubuntu-plume`, `8.0.16-jre17-Temurin-plume`, `8.0.16-Temurin-plume`, `8.0.16-jre17-plume`, `8.0.16-plume`, `8.0-jre17-Temurin-ubuntu-plume`, `8.0-Temurin-ubuntu-plume`, `8.0-jre17-ubuntu-plume`, `8.0-ubuntu-plume`, `8.0-jre17-Temurin-plume`, `8.0-Temurin-plume`, `8.0-jre17-plume`, `8.0-plume`, `8-jre17-Temurin-ubuntu-plume`, `8-Temurin-ubuntu-plume`, `8-jre17-ubuntu-plume`, `8-ubuntu-plume`, `8-jre17-Temurin-plume`, `8-Temurin-plume`, `8-jre17-plume`, `8-plume`, `jre17-Temurin-ubuntu-plume`, `Temurin-ubuntu-plume`, `jre17-ubuntu-plume`, `ubuntu-plume`, `jre17-Temurin-plume`, `Temurin-plume`, `jre17-plume`, `plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Temurin/ubuntu/plume/Dockerfile) -- [`8.0.16-jre17-Temurin-ubuntu-plus`, `8.0.16-Temurin-ubuntu-plus`, `8.0.16-jre17-ubuntu-plus`, `8.0.16-ubuntu-plus`, `8.0.16-jre17-Temurin-plus`, `8.0.16-Temurin-plus`, `8.0.16-jre17-plus`, `8.0.16-plus`, `8.0-jre17-Temurin-ubuntu-plus`, `8.0-Temurin-ubuntu-plus`, `8.0-jre17-ubuntu-plus`, `8.0-ubuntu-plus`, `8.0-jre17-Temurin-plus`, `8.0-Temurin-plus`, `8.0-jre17-plus`, `8.0-plus`, `8-jre17-Temurin-ubuntu-plus`, `8-Temurin-ubuntu-plus`, `8-jre17-ubuntu-plus`, `8-ubuntu-plus`, `8-jre17-Temurin-plus`, `8-Temurin-plus`, `8-jre17-plus`, `8-plus`, `jre17-Temurin-ubuntu-plus`, `Temurin-ubuntu-plus`, `jre17-ubuntu-plus`, `ubuntu-plus`, `jre17-Temurin-plus`, `Temurin-plus`, `jre17-plus`, `plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Temurin/ubuntu/plus/Dockerfile) -- [`8.0.16-jre17-Temurin-alpine-webprofile`, `8.0.16-Temurin-alpine-webprofile`, `8.0.16-jre17-alpine-webprofile`, `8.0.16-alpine-webprofile`, `8.0.16-jre17-Temurin-alpine`, `8.0.16-Temurin-alpine`, `8.0.16-jre17-alpine`, `8.0.16-alpine`, `8.0-jre17-Temurin-alpine-webprofile`, `8.0-Temurin-alpine-webprofile`, `8.0-jre17-alpine-webprofile`, `8.0-alpine-webprofile`, `8.0-jre17-Temurin-alpine`, `8.0-Temurin-alpine`, `8.0-jre17-alpine`, `8.0-alpine`, `8-jre17-Temurin-alpine-webprofile`, `8-Temurin-alpine-webprofile`, `8-jre17-alpine-webprofile`, `8-alpine-webprofile`, `8-jre17-Temurin-alpine`, `8-Temurin-alpine`, `8-jre17-alpine`, `8-alpine`, `jre17-Temurin-alpine-webprofile`, `Temurin-alpine-webprofile`, `jre17-alpine-webprofile`, `alpine-webprofile`, `jre17-Temurin-alpine`, `Temurin-alpine`, `jre17-alpine`, `alpine`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Temurin/alpine/webprofile/Dockerfile) -- [`8.0.16-jre17-Temurin-alpine-microprofile`, `8.0.16-Temurin-alpine-microprofile`, `8.0.16-jre17-alpine-microprofile`, `8.0.16-alpine-microprofile`, `8.0-jre17-Temurin-alpine-microprofile`, `8.0-Temurin-alpine-microprofile`, `8.0-jre17-alpine-microprofile`, `8.0-alpine-microprofile`, `8-jre17-Temurin-alpine-microprofile`, `8-Temurin-alpine-microprofile`, `8-jre17-alpine-microprofile`, `8-alpine-microprofile`, `jre17-Temurin-alpine-microprofile`, `Temurin-alpine-microprofile`, `jre17-alpine-microprofile`, `alpine-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Temurin/alpine/microprofile/Dockerfile) -- [`8.0.16-jre17-Temurin-alpine-plume`, `8.0.16-Temurin-alpine-plume`, `8.0.16-jre17-alpine-plume`, `8.0.16-alpine-plume`, `8.0-jre17-Temurin-alpine-plume`, `8.0-Temurin-alpine-plume`, `8.0-jre17-alpine-plume`, `8.0-alpine-plume`, `8-jre17-Temurin-alpine-plume`, `8-Temurin-alpine-plume`, `8-jre17-alpine-plume`, `8-alpine-plume`, `jre17-Temurin-alpine-plume`, `Temurin-alpine-plume`, `jre17-alpine-plume`, `alpine-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Temurin/alpine/plume/Dockerfile) -- [`8.0.16-jre17-Temurin-alpine-plus`, `8.0.16-Temurin-alpine-plus`, `8.0.16-jre17-alpine-plus`, `8.0.16-alpine-plus`, `8.0-jre17-Temurin-alpine-plus`, `8.0-Temurin-alpine-plus`, `8.0-jre17-alpine-plus`, `8.0-alpine-plus`, `8-jre17-Temurin-alpine-plus`, `8-Temurin-alpine-plus`, `8-jre17-alpine-plus`, `8-alpine-plus`, `jre17-Temurin-alpine-plus`, `Temurin-alpine-plus`, `jre17-alpine-plus`, `alpine-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Temurin/alpine/plus/Dockerfile) -- [`8.0.16-jre11-Temurin-ubuntu-webprofile`, `8.0.16-jre11-ubuntu-webprofile`, `8.0.16-jre11-Temurin-webprofile`, `8.0.16-jre11-webprofile`, `8.0.16-jre11-Temurin-ubuntu`, `8.0.16-jre11-ubuntu`, `8.0.16-jre11-Temurin`, `8.0.16-jre11`, `8.0-jre11-Temurin-ubuntu-webprofile`, `8.0-jre11-ubuntu-webprofile`, `8.0-jre11-Temurin-webprofile`, `8.0-jre11-webprofile`, `8.0-jre11-Temurin-ubuntu`, `8.0-jre11-ubuntu`, `8.0-jre11-Temurin`, `8.0-jre11`, `8-jre11-Temurin-ubuntu-webprofile`, `8-jre11-ubuntu-webprofile`, `8-jre11-Temurin-webprofile`, `8-jre11-webprofile`, `8-jre11-Temurin-ubuntu`, `8-jre11-ubuntu`, `8-jre11-Temurin`, `8-jre11`, `jre11-Temurin-ubuntu-webprofile`, `jre11-ubuntu-webprofile`, `jre11-Temurin-webprofile`, `jre11-webprofile`, `jre11-Temurin-ubuntu`, `jre11-ubuntu`, `jre11-Temurin`, `jre11`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Temurin/ubuntu/webprofile/Dockerfile) -- [`8.0.16-jre11-Temurin-ubuntu-microprofile`, `8.0.16-jre11-ubuntu-microprofile`, `8.0.16-jre11-Temurin-microprofile`, `8.0.16-jre11-microprofile`, `8.0-jre11-Temurin-ubuntu-microprofile`, `8.0-jre11-ubuntu-microprofile`, `8.0-jre11-Temurin-microprofile`, `8.0-jre11-microprofile`, `8-jre11-Temurin-ubuntu-microprofile`, `8-jre11-ubuntu-microprofile`, `8-jre11-Temurin-microprofile`, `8-jre11-microprofile`, `jre11-Temurin-ubuntu-microprofile`, `jre11-ubuntu-microprofile`, `jre11-Temurin-microprofile`, `jre11-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Temurin/ubuntu/microprofile/Dockerfile) -- [`8.0.16-jre11-Temurin-ubuntu-plume`, `8.0.16-jre11-ubuntu-plume`, `8.0.16-jre11-Temurin-plume`, `8.0.16-jre11-plume`, `8.0-jre11-Temurin-ubuntu-plume`, `8.0-jre11-ubuntu-plume`, `8.0-jre11-Temurin-plume`, `8.0-jre11-plume`, `8-jre11-Temurin-ubuntu-plume`, `8-jre11-ubuntu-plume`, `8-jre11-Temurin-plume`, `8-jre11-plume`, `jre11-Temurin-ubuntu-plume`, `jre11-ubuntu-plume`, `jre11-Temurin-plume`, `jre11-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Temurin/ubuntu/plume/Dockerfile) -- [`8.0.16-jre11-Temurin-ubuntu-plus`, `8.0.16-jre11-ubuntu-plus`, `8.0.16-jre11-Temurin-plus`, `8.0.16-jre11-plus`, `8.0-jre11-Temurin-ubuntu-plus`, `8.0-jre11-ubuntu-plus`, `8.0-jre11-Temurin-plus`, `8.0-jre11-plus`, `8-jre11-Temurin-ubuntu-plus`, `8-jre11-ubuntu-plus`, `8-jre11-Temurin-plus`, `8-jre11-plus`, `jre11-Temurin-ubuntu-plus`, `jre11-ubuntu-plus`, `jre11-Temurin-plus`, `jre11-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Temurin/ubuntu/plus/Dockerfile) -- [`8.0.16-jre11-Temurin-alpine-webprofile`, `8.0.16-jre11-alpine-webprofile`, `8.0.16-jre11-Temurin-alpine`, `8.0.16-jre11-alpine`, `8.0-jre11-Temurin-alpine-webprofile`, `8.0-jre11-alpine-webprofile`, `8.0-jre11-Temurin-alpine`, `8.0-jre11-alpine`, `8-jre11-Temurin-alpine-webprofile`, `8-jre11-alpine-webprofile`, `8-jre11-Temurin-alpine`, `8-jre11-alpine`, `jre11-Temurin-alpine-webprofile`, `jre11-alpine-webprofile`, `jre11-Temurin-alpine`, `jre11-alpine`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Temurin/alpine/webprofile/Dockerfile) -- [`8.0.16-jre11-Temurin-alpine-microprofile`, `8.0.16-jre11-alpine-microprofile`, `8.0-jre11-Temurin-alpine-microprofile`, `8.0-jre11-alpine-microprofile`, `8-jre11-Temurin-alpine-microprofile`, `8-jre11-alpine-microprofile`, `jre11-Temurin-alpine-microprofile`, `jre11-alpine-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Temurin/alpine/microprofile/Dockerfile) -- [`8.0.16-jre11-Temurin-alpine-plume`, `8.0.16-jre11-alpine-plume`, `8.0-jre11-Temurin-alpine-plume`, `8.0-jre11-alpine-plume`, `8-jre11-Temurin-alpine-plume`, `8-jre11-alpine-plume`, `jre11-Temurin-alpine-plume`, `jre11-alpine-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Temurin/alpine/plume/Dockerfile) -- [`8.0.16-jre11-Temurin-alpine-plus`, `8.0.16-jre11-alpine-plus`, `8.0-jre11-Temurin-alpine-plus`, `8.0-jre11-alpine-plus`, `8-jre11-Temurin-alpine-plus`, `8-jre11-alpine-plus`, `jre11-Temurin-alpine-plus`, `jre11-alpine-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Temurin/alpine/plus/Dockerfile) -- [`8.0.16-jre8-Temurin-ubuntu-webprofile`, `8.0.16-jre8-ubuntu-webprofile`, `8.0.16-jre8-Temurin-webprofile`, `8.0.16-jre8-webprofile`, `8.0.16-jre8-Temurin-ubuntu`, `8.0.16-jre8-ubuntu`, `8.0.16-jre8-Temurin`, `8.0.16-jre8`, `8.0-jre8-Temurin-ubuntu-webprofile`, `8.0-jre8-ubuntu-webprofile`, `8.0-jre8-Temurin-webprofile`, `8.0-jre8-webprofile`, `8.0-jre8-Temurin-ubuntu`, `8.0-jre8-ubuntu`, `8.0-jre8-Temurin`, `8.0-jre8`, `8-jre8-Temurin-ubuntu-webprofile`, `8-jre8-ubuntu-webprofile`, `8-jre8-Temurin-webprofile`, `8-jre8-webprofile`, `8-jre8-Temurin-ubuntu`, `8-jre8-ubuntu`, `8-jre8-Temurin`, `8-jre8`, `jre8-Temurin-ubuntu-webprofile`, `jre8-ubuntu-webprofile`, `jre8-Temurin-webprofile`, `jre8-webprofile`, `jre8-Temurin-ubuntu`, `jre8-ubuntu`, `jre8-Temurin`, `jre8`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre8/Temurin/ubuntu/webprofile/Dockerfile) -- [`8.0.16-jre8-Temurin-ubuntu-microprofile`, `8.0.16-jre8-ubuntu-microprofile`, `8.0.16-jre8-Temurin-microprofile`, `8.0.16-jre8-microprofile`, `8.0-jre8-Temurin-ubuntu-microprofile`, `8.0-jre8-ubuntu-microprofile`, `8.0-jre8-Temurin-microprofile`, `8.0-jre8-microprofile`, `8-jre8-Temurin-ubuntu-microprofile`, `8-jre8-ubuntu-microprofile`, `8-jre8-Temurin-microprofile`, `8-jre8-microprofile`, `jre8-Temurin-ubuntu-microprofile`, `jre8-ubuntu-microprofile`, `jre8-Temurin-microprofile`, `jre8-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre8/Temurin/ubuntu/microprofile/Dockerfile) -- [`8.0.16-jre8-Temurin-ubuntu-plume`, `8.0.16-jre8-ubuntu-plume`, `8.0.16-jre8-Temurin-plume`, `8.0.16-jre8-plume`, `8.0-jre8-Temurin-ubuntu-plume`, `8.0-jre8-ubuntu-plume`, `8.0-jre8-Temurin-plume`, `8.0-jre8-plume`, `8-jre8-Temurin-ubuntu-plume`, `8-jre8-ubuntu-plume`, `8-jre8-Temurin-plume`, `8-jre8-plume`, `jre8-Temurin-ubuntu-plume`, `jre8-ubuntu-plume`, `jre8-Temurin-plume`, `jre8-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre8/Temurin/ubuntu/plume/Dockerfile) -- [`8.0.16-jre8-Temurin-ubuntu-plus`, `8.0.16-jre8-ubuntu-plus`, `8.0.16-jre8-Temurin-plus`, `8.0.16-jre8-plus`, `8.0-jre8-Temurin-ubuntu-plus`, `8.0-jre8-ubuntu-plus`, `8.0-jre8-Temurin-plus`, `8.0-jre8-plus`, `8-jre8-Temurin-ubuntu-plus`, `8-jre8-ubuntu-plus`, `8-jre8-Temurin-plus`, `8-jre8-plus`, `jre8-Temurin-ubuntu-plus`, `jre8-ubuntu-plus`, `jre8-Temurin-plus`, `jre8-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre8/Temurin/ubuntu/plus/Dockerfile) -- [`8.0.16-jre8-Temurin-alpine-webprofile`, `8.0.16-jre8-alpine-webprofile`, `8.0.16-jre8-Temurin-alpine`, `8.0.16-jre8-alpine`, `8.0-jre8-Temurin-alpine-webprofile`, `8.0-jre8-alpine-webprofile`, `8.0-jre8-Temurin-alpine`, `8.0-jre8-alpine`, `8-jre8-Temurin-alpine-webprofile`, `8-jre8-alpine-webprofile`, `8-jre8-Temurin-alpine`, `8-jre8-alpine`, `jre8-Temurin-alpine-webprofile`, `jre8-alpine-webprofile`, `jre8-Temurin-alpine`, `jre8-alpine`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre8/Temurin/alpine/webprofile/Dockerfile) -- [`8.0.16-jre8-Temurin-alpine-microprofile`, `8.0.16-jre8-alpine-microprofile`, `8.0-jre8-Temurin-alpine-microprofile`, `8.0-jre8-alpine-microprofile`, `8-jre8-Temurin-alpine-microprofile`, `8-jre8-alpine-microprofile`, `jre8-Temurin-alpine-microprofile`, `jre8-alpine-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre8/Temurin/alpine/microprofile/Dockerfile) -- [`8.0.16-jre8-Temurin-alpine-plume`, `8.0.16-jre8-alpine-plume`, `8.0-jre8-Temurin-alpine-plume`, `8.0-jre8-alpine-plume`, `8-jre8-Temurin-alpine-plume`, `8-jre8-alpine-plume`, `jre8-Temurin-alpine-plume`, `jre8-alpine-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre8/Temurin/alpine/plume/Dockerfile) -- [`8.0.16-jre8-Temurin-alpine-plus`, `8.0.16-jre8-alpine-plus`, `8.0-jre8-Temurin-alpine-plus`, `8.0-jre8-alpine-plus`, `8-jre8-Temurin-alpine-plus`, `8-jre8-alpine-plus`, `jre8-Temurin-alpine-plus`, `jre8-alpine-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre8/Temurin/alpine/plus/Dockerfile) -- [`8.0.16-jre17-Semeru-ubuntu-webprofile`, `8.0.16-Semeru-ubuntu-webprofile`, `8.0.16-jre17-Semeru-webprofile`, `8.0.16-Semeru-webprofile`, `8.0.16-jre17-Semeru-ubuntu`, `8.0.16-Semeru-ubuntu`, `8.0.16-jre17-Semeru`, `8.0.16-Semeru`, `8.0-jre17-Semeru-ubuntu-webprofile`, `8.0-Semeru-ubuntu-webprofile`, `8.0-jre17-Semeru-webprofile`, `8.0-Semeru-webprofile`, `8.0-jre17-Semeru-ubuntu`, `8.0-Semeru-ubuntu`, `8.0-jre17-Semeru`, `8.0-Semeru`, `8-jre17-Semeru-ubuntu-webprofile`, `8-Semeru-ubuntu-webprofile`, `8-jre17-Semeru-webprofile`, `8-Semeru-webprofile`, `8-jre17-Semeru-ubuntu`, `8-Semeru-ubuntu`, `8-jre17-Semeru`, `8-Semeru`, `jre17-Semeru-ubuntu-webprofile`, `Semeru-ubuntu-webprofile`, `jre17-Semeru-webprofile`, `Semeru-webprofile`, `jre17-Semeru-ubuntu`, `Semeru-ubuntu`, `jre17-Semeru`, `Semeru`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Semeru/ubuntu/webprofile/Dockerfile) -- [`8.0.16-jre17-Semeru-ubuntu-microprofile`, `8.0.16-Semeru-ubuntu-microprofile`, `8.0.16-jre17-Semeru-microprofile`, `8.0.16-Semeru-microprofile`, `8.0-jre17-Semeru-ubuntu-microprofile`, `8.0-Semeru-ubuntu-microprofile`, `8.0-jre17-Semeru-microprofile`, `8.0-Semeru-microprofile`, `8-jre17-Semeru-ubuntu-microprofile`, `8-Semeru-ubuntu-microprofile`, `8-jre17-Semeru-microprofile`, `8-Semeru-microprofile`, `jre17-Semeru-ubuntu-microprofile`, `Semeru-ubuntu-microprofile`, `jre17-Semeru-microprofile`, `Semeru-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Semeru/ubuntu/microprofile/Dockerfile) -- [`8.0.16-jre17-Semeru-ubuntu-plume`, `8.0.16-Semeru-ubuntu-plume`, `8.0.16-jre17-Semeru-plume`, `8.0.16-Semeru-plume`, `8.0-jre17-Semeru-ubuntu-plume`, `8.0-Semeru-ubuntu-plume`, `8.0-jre17-Semeru-plume`, `8.0-Semeru-plume`, `8-jre17-Semeru-ubuntu-plume`, `8-Semeru-ubuntu-plume`, `8-jre17-Semeru-plume`, `8-Semeru-plume`, `jre17-Semeru-ubuntu-plume`, `Semeru-ubuntu-plume`, `jre17-Semeru-plume`, `Semeru-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Semeru/ubuntu/plume/Dockerfile) -- [`8.0.16-jre17-Semeru-ubuntu-plus`, `8.0.16-Semeru-ubuntu-plus`, `8.0.16-jre17-Semeru-plus`, `8.0.16-Semeru-plus`, `8.0-jre17-Semeru-ubuntu-plus`, `8.0-Semeru-ubuntu-plus`, `8.0-jre17-Semeru-plus`, `8.0-Semeru-plus`, `8-jre17-Semeru-ubuntu-plus`, `8-Semeru-ubuntu-plus`, `8-jre17-Semeru-plus`, `8-Semeru-plus`, `jre17-Semeru-ubuntu-plus`, `Semeru-ubuntu-plus`, `jre17-Semeru-plus`, `Semeru-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre17/Semeru/ubuntu/plus/Dockerfile) -- [`8.0.16-jre11-Semeru-ubuntu-webprofile`, `8.0.16-jre11-Semeru-webprofile`, `8.0.16-jre11-Semeru-ubuntu`, `8.0.16-jre11-Semeru`, `8.0-jre11-Semeru-ubuntu-webprofile`, `8.0-jre11-Semeru-webprofile`, `8.0-jre11-Semeru-ubuntu`, `8.0-jre11-Semeru`, `8-jre11-Semeru-ubuntu-webprofile`, `8-jre11-Semeru-webprofile`, `8-jre11-Semeru-ubuntu`, `8-jre11-Semeru`, `jre11-Semeru-ubuntu-webprofile`, `jre11-Semeru-webprofile`, `jre11-Semeru-ubuntu`, `jre11-Semeru`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Semeru/ubuntu/webprofile/Dockerfile) -- [`8.0.16-jre11-Semeru-ubuntu-microprofile`, `8.0.16-jre11-Semeru-microprofile`, `8.0-jre11-Semeru-ubuntu-microprofile`, `8.0-jre11-Semeru-microprofile`, `8-jre11-Semeru-ubuntu-microprofile`, `8-jre11-Semeru-microprofile`, `jre11-Semeru-ubuntu-microprofile`, `jre11-Semeru-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Semeru/ubuntu/microprofile/Dockerfile) -- [`8.0.16-jre11-Semeru-ubuntu-plume`, `8.0.16-jre11-Semeru-plume`, `8.0-jre11-Semeru-ubuntu-plume`, `8.0-jre11-Semeru-plume`, `8-jre11-Semeru-ubuntu-plume`, `8-jre11-Semeru-plume`, `jre11-Semeru-ubuntu-plume`, `jre11-Semeru-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Semeru/ubuntu/plume/Dockerfile) -- [`8.0.16-jre11-Semeru-ubuntu-plus`, `8.0.16-jre11-Semeru-plus`, `8.0-jre11-Semeru-ubuntu-plus`, `8.0-jre11-Semeru-plus`, `8-jre11-Semeru-ubuntu-plus`, `8-jre11-Semeru-plus`, `jre11-Semeru-ubuntu-plus`, `jre11-Semeru-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-8.0/jre11/Semeru/ubuntu/plus/Dockerfile) -- [`9.1.1-jre17-Temurin-ubuntu-webprofile`, `9.1.1-Temurin-ubuntu-webprofile`, `9.1.1-jre17-ubuntu-webprofile`, `9.1.1-ubuntu-webprofile`, `9.1.1-jre17-Temurin-webprofile`, `9.1.1-Temurin-webprofile`, `9.1.1-jre17-webprofile`, `9.1.1-webprofile`, `9.1.1-jre17-Temurin-ubuntu`, `9.1.1-Temurin-ubuntu`, `9.1.1-jre17-ubuntu`, `9.1.1-ubuntu`, `9.1.1-jre17-Temurin`, `9.1.1-Temurin`, `9.1.1-jre17`, `9.1.1`, `9.1-jre17-Temurin-ubuntu-webprofile`, `9.1-Temurin-ubuntu-webprofile`, `9.1-jre17-ubuntu-webprofile`, `9.1-ubuntu-webprofile`, `9.1-jre17-Temurin-webprofile`, `9.1-Temurin-webprofile`, `9.1-jre17-webprofile`, `9.1-webprofile`, `9.1-jre17-Temurin-ubuntu`, `9.1-Temurin-ubuntu`, `9.1-jre17-ubuntu`, `9.1-ubuntu`, `9.1-jre17-Temurin`, `9.1-Temurin`, `9.1-jre17`, `9.1`, `9-jre17-Temurin-ubuntu-webprofile`, `9-Temurin-ubuntu-webprofile`, `9-jre17-ubuntu-webprofile`, `9-ubuntu-webprofile`, `9-jre17-Temurin-webprofile`, `9-Temurin-webprofile`, `9-jre17-webprofile`, `9-webprofile`, `9-jre17-Temurin-ubuntu`, `9-Temurin-ubuntu`, `9-jre17-ubuntu`, `9-ubuntu`, `9-jre17-Temurin`, `9-Temurin`, `9-jre17`, `9`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Temurin/ubuntu/webprofile/Dockerfile) -- [`9.1.1-jre17-Temurin-ubuntu-microprofile`, `9.1.1-Temurin-ubuntu-microprofile`, `9.1.1-jre17-ubuntu-microprofile`, `9.1.1-ubuntu-microprofile`, `9.1.1-jre17-Temurin-microprofile`, `9.1.1-Temurin-microprofile`, `9.1.1-jre17-microprofile`, `9.1.1-microprofile`, `9.1-jre17-Temurin-ubuntu-microprofile`, `9.1-Temurin-ubuntu-microprofile`, `9.1-jre17-ubuntu-microprofile`, `9.1-ubuntu-microprofile`, `9.1-jre17-Temurin-microprofile`, `9.1-Temurin-microprofile`, `9.1-jre17-microprofile`, `9.1-microprofile`, `9-jre17-Temurin-ubuntu-microprofile`, `9-Temurin-ubuntu-microprofile`, `9-jre17-ubuntu-microprofile`, `9-ubuntu-microprofile`, `9-jre17-Temurin-microprofile`, `9-Temurin-microprofile`, `9-jre17-microprofile`, `9-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Temurin/ubuntu/microprofile/Dockerfile) -- [`9.1.1-jre17-Temurin-ubuntu-plume`, `9.1.1-Temurin-ubuntu-plume`, `9.1.1-jre17-ubuntu-plume`, `9.1.1-ubuntu-plume`, `9.1.1-jre17-Temurin-plume`, `9.1.1-Temurin-plume`, `9.1.1-jre17-plume`, `9.1.1-plume`, `9.1-jre17-Temurin-ubuntu-plume`, `9.1-Temurin-ubuntu-plume`, `9.1-jre17-ubuntu-plume`, `9.1-ubuntu-plume`, `9.1-jre17-Temurin-plume`, `9.1-Temurin-plume`, `9.1-jre17-plume`, `9.1-plume`, `9-jre17-Temurin-ubuntu-plume`, `9-Temurin-ubuntu-plume`, `9-jre17-ubuntu-plume`, `9-ubuntu-plume`, `9-jre17-Temurin-plume`, `9-Temurin-plume`, `9-jre17-plume`, `9-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Temurin/ubuntu/plume/Dockerfile) -- [`9.1.1-jre17-Temurin-ubuntu-plus`, `9.1.1-Temurin-ubuntu-plus`, `9.1.1-jre17-ubuntu-plus`, `9.1.1-ubuntu-plus`, `9.1.1-jre17-Temurin-plus`, `9.1.1-Temurin-plus`, `9.1.1-jre17-plus`, `9.1.1-plus`, `9.1-jre17-Temurin-ubuntu-plus`, `9.1-Temurin-ubuntu-plus`, `9.1-jre17-ubuntu-plus`, `9.1-ubuntu-plus`, `9.1-jre17-Temurin-plus`, `9.1-Temurin-plus`, `9.1-jre17-plus`, `9.1-plus`, `9-jre17-Temurin-ubuntu-plus`, `9-Temurin-ubuntu-plus`, `9-jre17-ubuntu-plus`, `9-ubuntu-plus`, `9-jre17-Temurin-plus`, `9-Temurin-plus`, `9-jre17-plus`, `9-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Temurin/ubuntu/plus/Dockerfile) -- [`9.1.1-jre17-Temurin-alpine-webprofile`, `9.1.1-Temurin-alpine-webprofile`, `9.1.1-jre17-alpine-webprofile`, `9.1.1-alpine-webprofile`, `9.1.1-jre17-Temurin-alpine`, `9.1.1-Temurin-alpine`, `9.1.1-jre17-alpine`, `9.1.1-alpine`, `9.1-jre17-Temurin-alpine-webprofile`, `9.1-Temurin-alpine-webprofile`, `9.1-jre17-alpine-webprofile`, `9.1-alpine-webprofile`, `9.1-jre17-Temurin-alpine`, `9.1-Temurin-alpine`, `9.1-jre17-alpine`, `9.1-alpine`, `9-jre17-Temurin-alpine-webprofile`, `9-Temurin-alpine-webprofile`, `9-jre17-alpine-webprofile`, `9-alpine-webprofile`, `9-jre17-Temurin-alpine`, `9-Temurin-alpine`, `9-jre17-alpine`, `9-alpine`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Temurin/alpine/webprofile/Dockerfile) -- [`9.1.1-jre17-Temurin-alpine-microprofile`, `9.1.1-Temurin-alpine-microprofile`, `9.1.1-jre17-alpine-microprofile`, `9.1.1-alpine-microprofile`, `9.1-jre17-Temurin-alpine-microprofile`, `9.1-Temurin-alpine-microprofile`, `9.1-jre17-alpine-microprofile`, `9.1-alpine-microprofile`, `9-jre17-Temurin-alpine-microprofile`, `9-Temurin-alpine-microprofile`, `9-jre17-alpine-microprofile`, `9-alpine-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Temurin/alpine/microprofile/Dockerfile) -- [`9.1.1-jre17-Temurin-alpine-plume`, `9.1.1-Temurin-alpine-plume`, `9.1.1-jre17-alpine-plume`, `9.1.1-alpine-plume`, `9.1-jre17-Temurin-alpine-plume`, `9.1-Temurin-alpine-plume`, `9.1-jre17-alpine-plume`, `9.1-alpine-plume`, `9-jre17-Temurin-alpine-plume`, `9-Temurin-alpine-plume`, `9-jre17-alpine-plume`, `9-alpine-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Temurin/alpine/plume/Dockerfile) -- [`9.1.1-jre17-Temurin-alpine-plus`, `9.1.1-Temurin-alpine-plus`, `9.1.1-jre17-alpine-plus`, `9.1.1-alpine-plus`, `9.1-jre17-Temurin-alpine-plus`, `9.1-Temurin-alpine-plus`, `9.1-jre17-alpine-plus`, `9.1-alpine-plus`, `9-jre17-Temurin-alpine-plus`, `9-Temurin-alpine-plus`, `9-jre17-alpine-plus`, `9-alpine-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Temurin/alpine/plus/Dockerfile) -- [`9.1.1-jre11-Temurin-ubuntu-webprofile`, `9.1.1-jre11-ubuntu-webprofile`, `9.1.1-jre11-Temurin-webprofile`, `9.1.1-jre11-webprofile`, `9.1.1-jre11-Temurin-ubuntu`, `9.1.1-jre11-ubuntu`, `9.1.1-jre11-Temurin`, `9.1.1-jre11`, `9.1-jre11-Temurin-ubuntu-webprofile`, `9.1-jre11-ubuntu-webprofile`, `9.1-jre11-Temurin-webprofile`, `9.1-jre11-webprofile`, `9.1-jre11-Temurin-ubuntu`, `9.1-jre11-ubuntu`, `9.1-jre11-Temurin`, `9.1-jre11`, `9-jre11-Temurin-ubuntu-webprofile`, `9-jre11-ubuntu-webprofile`, `9-jre11-Temurin-webprofile`, `9-jre11-webprofile`, `9-jre11-Temurin-ubuntu`, `9-jre11-ubuntu`, `9-jre11-Temurin`, `9-jre11`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Temurin/ubuntu/webprofile/Dockerfile) -- [`9.1.1-jre11-Temurin-ubuntu-microprofile`, `9.1.1-jre11-ubuntu-microprofile`, `9.1.1-jre11-Temurin-microprofile`, `9.1.1-jre11-microprofile`, `9.1-jre11-Temurin-ubuntu-microprofile`, `9.1-jre11-ubuntu-microprofile`, `9.1-jre11-Temurin-microprofile`, `9.1-jre11-microprofile`, `9-jre11-Temurin-ubuntu-microprofile`, `9-jre11-ubuntu-microprofile`, `9-jre11-Temurin-microprofile`, `9-jre11-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Temurin/ubuntu/microprofile/Dockerfile) -- [`9.1.1-jre11-Temurin-ubuntu-plume`, `9.1.1-jre11-ubuntu-plume`, `9.1.1-jre11-Temurin-plume`, `9.1.1-jre11-plume`, `9.1-jre11-Temurin-ubuntu-plume`, `9.1-jre11-ubuntu-plume`, `9.1-jre11-Temurin-plume`, `9.1-jre11-plume`, `9-jre11-Temurin-ubuntu-plume`, `9-jre11-ubuntu-plume`, `9-jre11-Temurin-plume`, `9-jre11-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Temurin/ubuntu/plume/Dockerfile) -- [`9.1.1-jre11-Temurin-ubuntu-plus`, `9.1.1-jre11-ubuntu-plus`, `9.1.1-jre11-Temurin-plus`, `9.1.1-jre11-plus`, `9.1-jre11-Temurin-ubuntu-plus`, `9.1-jre11-ubuntu-plus`, `9.1-jre11-Temurin-plus`, `9.1-jre11-plus`, `9-jre11-Temurin-ubuntu-plus`, `9-jre11-ubuntu-plus`, `9-jre11-Temurin-plus`, `9-jre11-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Temurin/ubuntu/plus/Dockerfile) -- [`9.1.1-jre11-Temurin-alpine-webprofile`, `9.1.1-jre11-alpine-webprofile`, `9.1.1-jre11-Temurin-alpine`, `9.1.1-jre11-alpine`, `9.1-jre11-Temurin-alpine-webprofile`, `9.1-jre11-alpine-webprofile`, `9.1-jre11-Temurin-alpine`, `9.1-jre11-alpine`, `9-jre11-Temurin-alpine-webprofile`, `9-jre11-alpine-webprofile`, `9-jre11-Temurin-alpine`, `9-jre11-alpine`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Temurin/alpine/webprofile/Dockerfile) -- [`9.1.1-jre11-Temurin-alpine-microprofile`, `9.1.1-jre11-alpine-microprofile`, `9.1-jre11-Temurin-alpine-microprofile`, `9.1-jre11-alpine-microprofile`, `9-jre11-Temurin-alpine-microprofile`, `9-jre11-alpine-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Temurin/alpine/microprofile/Dockerfile) -- [`9.1.1-jre11-Temurin-alpine-plume`, `9.1.1-jre11-alpine-plume`, `9.1-jre11-Temurin-alpine-plume`, `9.1-jre11-alpine-plume`, `9-jre11-Temurin-alpine-plume`, `9-jre11-alpine-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Temurin/alpine/plume/Dockerfile) -- [`9.1.1-jre11-Temurin-alpine-plus`, `9.1.1-jre11-alpine-plus`, `9.1-jre11-Temurin-alpine-plus`, `9.1-jre11-alpine-plus`, `9-jre11-Temurin-alpine-plus`, `9-jre11-alpine-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Temurin/alpine/plus/Dockerfile) -- [`9.1.1-jre17-Semeru-ubuntu-webprofile`, `9.1.1-Semeru-ubuntu-webprofile`, `9.1.1-jre17-Semeru-webprofile`, `9.1.1-Semeru-webprofile`, `9.1.1-jre17-Semeru-ubuntu`, `9.1.1-Semeru-ubuntu`, `9.1.1-jre17-Semeru`, `9.1.1-Semeru`, `9.1-jre17-Semeru-ubuntu-webprofile`, `9.1-Semeru-ubuntu-webprofile`, `9.1-jre17-Semeru-webprofile`, `9.1-Semeru-webprofile`, `9.1-jre17-Semeru-ubuntu`, `9.1-Semeru-ubuntu`, `9.1-jre17-Semeru`, `9.1-Semeru`, `9-jre17-Semeru-ubuntu-webprofile`, `9-Semeru-ubuntu-webprofile`, `9-jre17-Semeru-webprofile`, `9-Semeru-webprofile`, `9-jre17-Semeru-ubuntu`, `9-Semeru-ubuntu`, `9-jre17-Semeru`, `9-Semeru`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Semeru/ubuntu/webprofile/Dockerfile) -- [`9.1.1-jre17-Semeru-ubuntu-microprofile`, `9.1.1-Semeru-ubuntu-microprofile`, `9.1.1-jre17-Semeru-microprofile`, `9.1.1-Semeru-microprofile`, `9.1-jre17-Semeru-ubuntu-microprofile`, `9.1-Semeru-ubuntu-microprofile`, `9.1-jre17-Semeru-microprofile`, `9.1-Semeru-microprofile`, `9-jre17-Semeru-ubuntu-microprofile`, `9-Semeru-ubuntu-microprofile`, `9-jre17-Semeru-microprofile`, `9-Semeru-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Semeru/ubuntu/microprofile/Dockerfile) -- [`9.1.1-jre17-Semeru-ubuntu-plume`, `9.1.1-Semeru-ubuntu-plume`, `9.1.1-jre17-Semeru-plume`, `9.1.1-Semeru-plume`, `9.1-jre17-Semeru-ubuntu-plume`, `9.1-Semeru-ubuntu-plume`, `9.1-jre17-Semeru-plume`, `9.1-Semeru-plume`, `9-jre17-Semeru-ubuntu-plume`, `9-Semeru-ubuntu-plume`, `9-jre17-Semeru-plume`, `9-Semeru-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Semeru/ubuntu/plume/Dockerfile) -- [`9.1.1-jre17-Semeru-ubuntu-plus`, `9.1.1-Semeru-ubuntu-plus`, `9.1.1-jre17-Semeru-plus`, `9.1.1-Semeru-plus`, `9.1-jre17-Semeru-ubuntu-plus`, `9.1-Semeru-ubuntu-plus`, `9.1-jre17-Semeru-plus`, `9.1-Semeru-plus`, `9-jre17-Semeru-ubuntu-plus`, `9-Semeru-ubuntu-plus`, `9-jre17-Semeru-plus`, `9-Semeru-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre17/Semeru/ubuntu/plus/Dockerfile) -- [`9.1.1-jre11-Semeru-ubuntu-webprofile`, `9.1.1-jre11-Semeru-webprofile`, `9.1.1-jre11-Semeru-ubuntu`, `9.1.1-jre11-Semeru`, `9.1-jre11-Semeru-ubuntu-webprofile`, `9.1-jre11-Semeru-webprofile`, `9.1-jre11-Semeru-ubuntu`, `9.1-jre11-Semeru`, `9-jre11-Semeru-ubuntu-webprofile`, `9-jre11-Semeru-webprofile`, `9-jre11-Semeru-ubuntu`, `9-jre11-Semeru`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Semeru/ubuntu/webprofile/Dockerfile) -- [`9.1.1-jre11-Semeru-ubuntu-microprofile`, `9.1.1-jre11-Semeru-microprofile`, `9.1-jre11-Semeru-ubuntu-microprofile`, `9.1-jre11-Semeru-microprofile`, `9-jre11-Semeru-ubuntu-microprofile`, `9-jre11-Semeru-microprofile`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Semeru/ubuntu/microprofile/Dockerfile) -- [`9.1.1-jre11-Semeru-ubuntu-plume`, `9.1.1-jre11-Semeru-plume`, `9.1-jre11-Semeru-ubuntu-plume`, `9.1-jre11-Semeru-plume`, `9-jre11-Semeru-ubuntu-plume`, `9-jre11-Semeru-plume`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Semeru/ubuntu/plume/Dockerfile) -- [`9.1.1-jre11-Semeru-ubuntu-plus`, `9.1.1-jre11-Semeru-plus`, `9.1-jre11-Semeru-ubuntu-plus`, `9.1-jre11-Semeru-plus`, `9-jre11-Semeru-ubuntu-plus`, `9-jre11-Semeru-plus`](https://github.com/tomitribe/docker-tomee/blob/0d231adec581d2e4a9a0cd6639b205087ab29dff/TomEE-9.1/jre11/Semeru/ubuntu/plus/Dockerfile) +- [`10.0.1-jre21-Temurin-ubuntu-microprofile`, `10.0.1-Temurin-ubuntu-microprofile`, `10.0.1-jre21-ubuntu-microprofile`, `10.0.1-ubuntu-microprofile`, `10.0.1-jre21-Temurin-microprofile`, `10.0.1-Temurin-microprofile`, `10.0.1-jre21-microprofile`, `10.0.1-microprofile`, `10.0.1-jre21-Temurin-ubuntu`, `10.0.1-Temurin-ubuntu`, `10.0.1-jre21-ubuntu`, `10.0.1-ubuntu`, `10.0.1-jre21-Temurin`, `10.0.1-Temurin`, `10.0.1-jre21`, `10.0.1`, `10.0-jre21-Temurin-ubuntu-microprofile`, `10.0-Temurin-ubuntu-microprofile`, `10.0-jre21-ubuntu-microprofile`, `10.0-ubuntu-microprofile`, `10.0-jre21-Temurin-microprofile`, `10.0-Temurin-microprofile`, `10.0-jre21-microprofile`, `10.0-microprofile`, `10.0-jre21-Temurin-ubuntu`, `10.0-Temurin-ubuntu`, `10.0-jre21-ubuntu`, `10.0-ubuntu`, `10.0-jre21-Temurin`, `10.0-Temurin`, `10.0-jre21`, `10.0`, `10-jre21-Temurin-ubuntu-microprofile`, `10-Temurin-ubuntu-microprofile`, `10-jre21-ubuntu-microprofile`, `10-ubuntu-microprofile`, `10-jre21-Temurin-microprofile`, `10-Temurin-microprofile`, `10-jre21-microprofile`, `10-microprofile`, `10-jre21-Temurin-ubuntu`, `10-Temurin-ubuntu`, `10-jre21-ubuntu`, `10-ubuntu`, `10-jre21-Temurin`, `10-Temurin`, `10-jre21`, `10`, `jre21-Temurin-ubuntu-microprofile`, `Temurin-ubuntu-microprofile`, `jre21-ubuntu-microprofile`, `ubuntu-microprofile`, `jre21-Temurin-microprofile`, `Temurin-microprofile`, `jre21-microprofile`, `microprofile`, `jre21-Temurin-ubuntu`, `Temurin-ubuntu`, `jre21-ubuntu`, `ubuntu`, `jre21-Temurin`, `Temurin`, `jre21`, `latest`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Temurin/ubuntu/microprofile/Dockerfile) + +- [`10.0.1-jre21-Temurin-ubuntu-plume`, `10.0.1-Temurin-ubuntu-plume`, `10.0.1-jre21-ubuntu-plume`, `10.0.1-ubuntu-plume`, `10.0.1-jre21-Temurin-plume`, `10.0.1-Temurin-plume`, `10.0.1-jre21-plume`, `10.0.1-plume`, `10.0-jre21-Temurin-ubuntu-plume`, `10.0-Temurin-ubuntu-plume`, `10.0-jre21-ubuntu-plume`, `10.0-ubuntu-plume`, `10.0-jre21-Temurin-plume`, `10.0-Temurin-plume`, `10.0-jre21-plume`, `10.0-plume`, `10-jre21-Temurin-ubuntu-plume`, `10-Temurin-ubuntu-plume`, `10-jre21-ubuntu-plume`, `10-ubuntu-plume`, `10-jre21-Temurin-plume`, `10-Temurin-plume`, `10-jre21-plume`, `10-plume`, `jre21-Temurin-ubuntu-plume`, `Temurin-ubuntu-plume`, `jre21-ubuntu-plume`, `ubuntu-plume`, `jre21-Temurin-plume`, `Temurin-plume`, `jre21-plume`, `plume`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Temurin/ubuntu/plume/Dockerfile) + +- [`10.0.1-jre21-Temurin-ubuntu-plus`, `10.0.1-Temurin-ubuntu-plus`, `10.0.1-jre21-ubuntu-plus`, `10.0.1-ubuntu-plus`, `10.0.1-jre21-Temurin-plus`, `10.0.1-Temurin-plus`, `10.0.1-jre21-plus`, `10.0.1-plus`, `10.0-jre21-Temurin-ubuntu-plus`, `10.0-Temurin-ubuntu-plus`, `10.0-jre21-ubuntu-plus`, `10.0-ubuntu-plus`, `10.0-jre21-Temurin-plus`, `10.0-Temurin-plus`, `10.0-jre21-plus`, `10.0-plus`, `10-jre21-Temurin-ubuntu-plus`, `10-Temurin-ubuntu-plus`, `10-jre21-ubuntu-plus`, `10-ubuntu-plus`, `10-jre21-Temurin-plus`, `10-Temurin-plus`, `10-jre21-plus`, `10-plus`, `jre21-Temurin-ubuntu-plus`, `Temurin-ubuntu-plus`, `jre21-ubuntu-plus`, `ubuntu-plus`, `jre21-Temurin-plus`, `Temurin-plus`, `jre21-plus`, `plus`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Temurin/ubuntu/plus/Dockerfile) + +- [`10.0.1-jre21-Temurin-ubuntu-webprofile`, `10.0.1-Temurin-ubuntu-webprofile`, `10.0.1-jre21-ubuntu-webprofile`, `10.0.1-ubuntu-webprofile`, `10.0.1-jre21-Temurin-webprofile`, `10.0.1-Temurin-webprofile`, `10.0.1-jre21-webprofile`, `10.0.1-webprofile`, `10.0-jre21-Temurin-ubuntu-webprofile`, `10.0-Temurin-ubuntu-webprofile`, `10.0-jre21-ubuntu-webprofile`, `10.0-ubuntu-webprofile`, `10.0-jre21-Temurin-webprofile`, `10.0-Temurin-webprofile`, `10.0-jre21-webprofile`, `10.0-webprofile`, `10-jre21-Temurin-ubuntu-webprofile`, `10-Temurin-ubuntu-webprofile`, `10-jre21-ubuntu-webprofile`, `10-ubuntu-webprofile`, `10-jre21-Temurin-webprofile`, `10-Temurin-webprofile`, `10-jre21-webprofile`, `10-webprofile`, `jre21-Temurin-ubuntu-webprofile`, `Temurin-ubuntu-webprofile`, `jre21-ubuntu-webprofile`, `ubuntu-webprofile`, `jre21-Temurin-webprofile`, `Temurin-webprofile`, `jre21-webprofile`, `webprofile`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Temurin/ubuntu/webprofile/Dockerfile) + +- [`10.0.1-jre21-Temurin-alpine-microprofile`, `10.0.1-Temurin-alpine-microprofile`, `10.0.1-jre21-alpine-microprofile`, `10.0.1-alpine-microprofile`, `10.0.1-jre21-Temurin-alpine`, `10.0.1-Temurin-alpine`, `10.0.1-jre21-alpine`, `10.0.1-alpine`, `10.0-jre21-Temurin-alpine-microprofile`, `10.0-Temurin-alpine-microprofile`, `10.0-jre21-alpine-microprofile`, `10.0-alpine-microprofile`, `10.0-jre21-Temurin-alpine`, `10.0-Temurin-alpine`, `10.0-jre21-alpine`, `10.0-alpine`, `10-jre21-Temurin-alpine-microprofile`, `10-Temurin-alpine-microprofile`, `10-jre21-alpine-microprofile`, `10-alpine-microprofile`, `10-jre21-Temurin-alpine`, `10-Temurin-alpine`, `10-jre21-alpine`, `10-alpine`, `jre21-Temurin-alpine-microprofile`, `Temurin-alpine-microprofile`, `jre21-alpine-microprofile`, `alpine-microprofile`, `jre21-Temurin-alpine`, `Temurin-alpine`, `jre21-alpine`, `alpine`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Temurin/alpine/microprofile/Dockerfile) + +- [`10.0.1-jre21-Temurin-alpine-plume`, `10.0.1-Temurin-alpine-plume`, `10.0.1-jre21-alpine-plume`, `10.0.1-alpine-plume`, `10.0-jre21-Temurin-alpine-plume`, `10.0-Temurin-alpine-plume`, `10.0-jre21-alpine-plume`, `10.0-alpine-plume`, `10-jre21-Temurin-alpine-plume`, `10-Temurin-alpine-plume`, `10-jre21-alpine-plume`, `10-alpine-plume`, `jre21-Temurin-alpine-plume`, `Temurin-alpine-plume`, `jre21-alpine-plume`, `alpine-plume`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Temurin/alpine/plume/Dockerfile) + +- [`10.0.1-jre21-Temurin-alpine-plus`, `10.0.1-Temurin-alpine-plus`, `10.0.1-jre21-alpine-plus`, `10.0.1-alpine-plus`, `10.0-jre21-Temurin-alpine-plus`, `10.0-Temurin-alpine-plus`, `10.0-jre21-alpine-plus`, `10.0-alpine-plus`, `10-jre21-Temurin-alpine-plus`, `10-Temurin-alpine-plus`, `10-jre21-alpine-plus`, `10-alpine-plus`, `jre21-Temurin-alpine-plus`, `Temurin-alpine-plus`, `jre21-alpine-plus`, `alpine-plus`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Temurin/alpine/plus/Dockerfile) + +- [`10.0.1-jre21-Temurin-alpine-webprofile`, `10.0.1-Temurin-alpine-webprofile`, `10.0.1-jre21-alpine-webprofile`, `10.0.1-alpine-webprofile`, `10.0-jre21-Temurin-alpine-webprofile`, `10.0-Temurin-alpine-webprofile`, `10.0-jre21-alpine-webprofile`, `10.0-alpine-webprofile`, `10-jre21-Temurin-alpine-webprofile`, `10-Temurin-alpine-webprofile`, `10-jre21-alpine-webprofile`, `10-alpine-webprofile`, `jre21-Temurin-alpine-webprofile`, `Temurin-alpine-webprofile`, `jre21-alpine-webprofile`, `alpine-webprofile`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Temurin/alpine/webprofile/Dockerfile) + +- [`10.0.1-jre21-Semeru-ubuntu-microprofile`, `10.0.1-Semeru-ubuntu-microprofile`, `10.0.1-jre21-Semeru-microprofile`, `10.0.1-Semeru-microprofile`, `10.0.1-jre21-Semeru-ubuntu`, `10.0.1-Semeru-ubuntu`, `10.0.1-jre21-Semeru`, `10.0.1-Semeru`, `10.0-jre21-Semeru-ubuntu-microprofile`, `10.0-Semeru-ubuntu-microprofile`, `10.0-jre21-Semeru-microprofile`, `10.0-Semeru-microprofile`, `10.0-jre21-Semeru-ubuntu`, `10.0-Semeru-ubuntu`, `10.0-jre21-Semeru`, `10.0-Semeru`, `10-jre21-Semeru-ubuntu-microprofile`, `10-Semeru-ubuntu-microprofile`, `10-jre21-Semeru-microprofile`, `10-Semeru-microprofile`, `10-jre21-Semeru-ubuntu`, `10-Semeru-ubuntu`, `10-jre21-Semeru`, `10-Semeru`, `jre21-Semeru-ubuntu-microprofile`, `Semeru-ubuntu-microprofile`, `jre21-Semeru-microprofile`, `Semeru-microprofile`, `jre21-Semeru-ubuntu`, `Semeru-ubuntu`, `jre21-Semeru`, `Semeru`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Semeru/ubuntu/microprofile/Dockerfile) + +- [`10.0.1-jre21-Semeru-ubuntu-plume`, `10.0.1-Semeru-ubuntu-plume`, `10.0.1-jre21-Semeru-plume`, `10.0.1-Semeru-plume`, `10.0-jre21-Semeru-ubuntu-plume`, `10.0-Semeru-ubuntu-plume`, `10.0-jre21-Semeru-plume`, `10.0-Semeru-plume`, `10-jre21-Semeru-ubuntu-plume`, `10-Semeru-ubuntu-plume`, `10-jre21-Semeru-plume`, `10-Semeru-plume`, `jre21-Semeru-ubuntu-plume`, `Semeru-ubuntu-plume`, `jre21-Semeru-plume`, `Semeru-plume`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Semeru/ubuntu/plume/Dockerfile) + +- [`10.0.1-jre21-Semeru-ubuntu-plus`, `10.0.1-Semeru-ubuntu-plus`, `10.0.1-jre21-Semeru-plus`, `10.0.1-Semeru-plus`, `10.0-jre21-Semeru-ubuntu-plus`, `10.0-Semeru-ubuntu-plus`, `10.0-jre21-Semeru-plus`, `10.0-Semeru-plus`, `10-jre21-Semeru-ubuntu-plus`, `10-Semeru-ubuntu-plus`, `10-jre21-Semeru-plus`, `10-Semeru-plus`, `jre21-Semeru-ubuntu-plus`, `Semeru-ubuntu-plus`, `jre21-Semeru-plus`, `Semeru-plus`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Semeru/ubuntu/plus/Dockerfile) + +- [`10.0.1-jre21-Semeru-ubuntu-webprofile`, `10.0.1-Semeru-ubuntu-webprofile`, `10.0.1-jre21-Semeru-webprofile`, `10.0.1-Semeru-webprofile`, `10.0-jre21-Semeru-ubuntu-webprofile`, `10.0-Semeru-ubuntu-webprofile`, `10.0-jre21-Semeru-webprofile`, `10.0-Semeru-webprofile`, `10-jre21-Semeru-ubuntu-webprofile`, `10-Semeru-ubuntu-webprofile`, `10-jre21-Semeru-webprofile`, `10-Semeru-webprofile`, `jre21-Semeru-ubuntu-webprofile`, `Semeru-ubuntu-webprofile`, `jre21-Semeru-webprofile`, `Semeru-webprofile`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre21/Semeru/ubuntu/webprofile/Dockerfile) + +- [`10.0.1-jre17-Temurin-ubuntu-microprofile`, `10.0.1-jre17-ubuntu-microprofile`, `10.0.1-jre17-Temurin-microprofile`, `10.0.1-jre17-microprofile`, `10.0.1-jre17-Temurin-ubuntu`, `10.0.1-jre17-ubuntu`, `10.0.1-jre17-Temurin`, `10.0.1-jre17`, `10.0-jre17-Temurin-ubuntu-microprofile`, `10.0-jre17-ubuntu-microprofile`, `10.0-jre17-Temurin-microprofile`, `10.0-jre17-microprofile`, `10.0-jre17-Temurin-ubuntu`, `10.0-jre17-ubuntu`, `10.0-jre17-Temurin`, `10.0-jre17`, `10-jre17-Temurin-ubuntu-microprofile`, `10-jre17-ubuntu-microprofile`, `10-jre17-Temurin-microprofile`, `10-jre17-microprofile`, `10-jre17-Temurin-ubuntu`, `10-jre17-ubuntu`, `10-jre17-Temurin`, `10-jre17`, `jre17-Temurin-ubuntu-microprofile`, `jre17-ubuntu-microprofile`, `jre17-Temurin-microprofile`, `jre17-microprofile`, `jre17-Temurin-ubuntu`, `jre17-ubuntu`, `jre17-Temurin`, `jre17`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Temurin/ubuntu/microprofile/Dockerfile) + +- [`10.0.1-jre17-Temurin-ubuntu-plume`, `10.0.1-jre17-ubuntu-plume`, `10.0.1-jre17-Temurin-plume`, `10.0.1-jre17-plume`, `10.0-jre17-Temurin-ubuntu-plume`, `10.0-jre17-ubuntu-plume`, `10.0-jre17-Temurin-plume`, `10.0-jre17-plume`, `10-jre17-Temurin-ubuntu-plume`, `10-jre17-ubuntu-plume`, `10-jre17-Temurin-plume`, `10-jre17-plume`, `jre17-Temurin-ubuntu-plume`, `jre17-ubuntu-plume`, `jre17-Temurin-plume`, `jre17-plume`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Temurin/ubuntu/plume/Dockerfile) + +- [`10.0.1-jre17-Temurin-ubuntu-plus`, `10.0.1-jre17-ubuntu-plus`, `10.0.1-jre17-Temurin-plus`, `10.0.1-jre17-plus`, `10.0-jre17-Temurin-ubuntu-plus`, `10.0-jre17-ubuntu-plus`, `10.0-jre17-Temurin-plus`, `10.0-jre17-plus`, `10-jre17-Temurin-ubuntu-plus`, `10-jre17-ubuntu-plus`, `10-jre17-Temurin-plus`, `10-jre17-plus`, `jre17-Temurin-ubuntu-plus`, `jre17-ubuntu-plus`, `jre17-Temurin-plus`, `jre17-plus`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Temurin/ubuntu/plus/Dockerfile) + +- [`10.0.1-jre17-Temurin-ubuntu-webprofile`, `10.0.1-jre17-ubuntu-webprofile`, `10.0.1-jre17-Temurin-webprofile`, `10.0.1-jre17-webprofile`, `10.0-jre17-Temurin-ubuntu-webprofile`, `10.0-jre17-ubuntu-webprofile`, `10.0-jre17-Temurin-webprofile`, `10.0-jre17-webprofile`, `10-jre17-Temurin-ubuntu-webprofile`, `10-jre17-ubuntu-webprofile`, `10-jre17-Temurin-webprofile`, `10-jre17-webprofile`, `jre17-Temurin-ubuntu-webprofile`, `jre17-ubuntu-webprofile`, `jre17-Temurin-webprofile`, `jre17-webprofile`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Temurin/ubuntu/webprofile/Dockerfile) + +- [`10.0.1-jre17-Temurin-alpine-microprofile`, `10.0.1-jre17-alpine-microprofile`, `10.0.1-jre17-Temurin-alpine`, `10.0.1-jre17-alpine`, `10.0-jre17-Temurin-alpine-microprofile`, `10.0-jre17-alpine-microprofile`, `10.0-jre17-Temurin-alpine`, `10.0-jre17-alpine`, `10-jre17-Temurin-alpine-microprofile`, `10-jre17-alpine-microprofile`, `10-jre17-Temurin-alpine`, `10-jre17-alpine`, `jre17-Temurin-alpine-microprofile`, `jre17-alpine-microprofile`, `jre17-Temurin-alpine`, `jre17-alpine`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Temurin/alpine/microprofile/Dockerfile) + +- [`10.0.1-jre17-Temurin-alpine-plume`, `10.0.1-jre17-alpine-plume`, `10.0-jre17-Temurin-alpine-plume`, `10.0-jre17-alpine-plume`, `10-jre17-Temurin-alpine-plume`, `10-jre17-alpine-plume`, `jre17-Temurin-alpine-plume`, `jre17-alpine-plume`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Temurin/alpine/plume/Dockerfile) + +- [`10.0.1-jre17-Temurin-alpine-plus`, `10.0.1-jre17-alpine-plus`, `10.0-jre17-Temurin-alpine-plus`, `10.0-jre17-alpine-plus`, `10-jre17-Temurin-alpine-plus`, `10-jre17-alpine-plus`, `jre17-Temurin-alpine-plus`, `jre17-alpine-plus`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Temurin/alpine/plus/Dockerfile) + +- [`10.0.1-jre17-Temurin-alpine-webprofile`, `10.0.1-jre17-alpine-webprofile`, `10.0-jre17-Temurin-alpine-webprofile`, `10.0-jre17-alpine-webprofile`, `10-jre17-Temurin-alpine-webprofile`, `10-jre17-alpine-webprofile`, `jre17-Temurin-alpine-webprofile`, `jre17-alpine-webprofile`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Temurin/alpine/webprofile/Dockerfile) + +- [`10.0.1-jre17-Semeru-ubuntu-microprofile`, `10.0.1-jre17-Semeru-microprofile`, `10.0.1-jre17-Semeru-ubuntu`, `10.0.1-jre17-Semeru`, `10.0-jre17-Semeru-ubuntu-microprofile`, `10.0-jre17-Semeru-microprofile`, `10.0-jre17-Semeru-ubuntu`, `10.0-jre17-Semeru`, `10-jre17-Semeru-ubuntu-microprofile`, `10-jre17-Semeru-microprofile`, `10-jre17-Semeru-ubuntu`, `10-jre17-Semeru`, `jre17-Semeru-ubuntu-microprofile`, `jre17-Semeru-microprofile`, `jre17-Semeru-ubuntu`, `jre17-Semeru`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Semeru/ubuntu/microprofile/Dockerfile) + +- [`10.0.1-jre17-Semeru-ubuntu-plume`, `10.0.1-jre17-Semeru-plume`, `10.0-jre17-Semeru-ubuntu-plume`, `10.0-jre17-Semeru-plume`, `10-jre17-Semeru-ubuntu-plume`, `10-jre17-Semeru-plume`, `jre17-Semeru-ubuntu-plume`, `jre17-Semeru-plume`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Semeru/ubuntu/plume/Dockerfile) + +- [`10.0.1-jre17-Semeru-ubuntu-plus`, `10.0.1-jre17-Semeru-plus`, `10.0-jre17-Semeru-ubuntu-plus`, `10.0-jre17-Semeru-plus`, `10-jre17-Semeru-ubuntu-plus`, `10-jre17-Semeru-plus`, `jre17-Semeru-ubuntu-plus`, `jre17-Semeru-plus`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Semeru/ubuntu/plus/Dockerfile) + +- [`10.0.1-jre17-Semeru-ubuntu-webprofile`, `10.0.1-jre17-Semeru-webprofile`, `10.0-jre17-Semeru-ubuntu-webprofile`, `10.0-jre17-Semeru-webprofile`, `10-jre17-Semeru-ubuntu-webprofile`, `10-jre17-Semeru-webprofile`, `jre17-Semeru-ubuntu-webprofile`, `jre17-Semeru-webprofile`](https://github.com/tomitribe/docker-tomee/blob/56d9c12403ae515512a8a1d75b50a7760c8780a2/TomEE-10.0/jre17/Semeru/ubuntu/webprofile/Dockerfile) # Quick reference (cont.) diff --git a/tomee/metadata.json b/tomee/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/tomee/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/traefik/README.md b/traefik/README.md index 600244932168..5eff2f5a8971 100644 --- a/traefik/README.md +++ b/traefik/README.md @@ -24,10 +24,17 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`v3.0.0-beta4-windowsservercore-1809`, `3.0.0-beta4-windowsservercore-1809`, `v3.0-windowsservercore-1809`, `3.0-windowsservercore-1809`, `beaufort-windowsservercore-1809`](https://github.com/traefik/traefik-library-image/blob/9c7773b44918428aed9d425932dbd220e700fed3/windows/1809/Dockerfile) -- [`v3.0.0-beta4`, `3.0.0-beta4`, `v3.0`, `3.0`, `beaufort`](https://github.com/traefik/traefik-library-image/blob/9c7773b44918428aed9d425932dbd220e700fed3/alpine/Dockerfile) -- [`v2.10.5-windowsservercore-1809`, `2.10.5-windowsservercore-1809`, `v2.10-windowsservercore-1809`, `2.10-windowsservercore-1809`, `saintmarcelin-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/traefik/traefik-library-image/blob/71a4619eca4f504c7034876c171626c1755944f3/windows/1809/Dockerfile) -- [`v2.10.5`, `2.10.5`, `v2.10`, `2.10`, `saintmarcelin`, `latest`](https://github.com/traefik/traefik-library-image/blob/71a4619eca4f504c7034876c171626c1755944f3/alpine/Dockerfile) +- [`v3.4.1-windowsservercore-ltsc2022`, `3.4.1-windowsservercore-ltsc2022`, `v3.4-windowsservercore-ltsc2022`, `3.4-windowsservercore-ltsc2022`, `v3-windowsservercore-ltsc2022`, `3-windowsservercore-ltsc2022`, `chaource-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/19c7156de69c027a199d78d77efc7285d9cca13e/v3.4/windows/servercore-ltsc2022/Dockerfile) + +- [`v3.4.1-nanoserver-ltsc2022`, `3.4.1-nanoserver-ltsc2022`, `v3.4-nanoserver-ltsc2022`, `3.4-nanoserver-ltsc2022`, `v3-nanoserver-ltsc2022`, `3-nanoserver-ltsc2022`, `chaource-nanoserver-ltsc2022`, `nanoserver-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/19c7156de69c027a199d78d77efc7285d9cca13e/v3.4/windows/nanoserver-ltsc2022/Dockerfile) + +- [`v3.4.1`, `3.4.1`, `v3.4`, `3.4`, `v3`, `3`, `chaource`, `latest`](https://github.com/traefik/traefik-library-image/blob/19c7156de69c027a199d78d77efc7285d9cca13e/v3.4/alpine/Dockerfile) + +- [`v2.11.25-windowsservercore-ltsc2022`, `2.11.25-windowsservercore-ltsc2022`, `v2.11-windowsservercore-ltsc2022`, `2.11-windowsservercore-ltsc2022`, `v2-windowsservercore-ltsc2022`, `2-windowsservercore-ltsc2022`, `mimolette-windowsservercore-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/8deaff57a2d889d1198c81e081cb0fdb6819c12a/v2.11/windows/servercore-ltsc2022/Dockerfile) + +- [`v2.11.25-nanoserver-ltsc2022`, `2.11.25-nanoserver-ltsc2022`, `v2.11-nanoserver-ltsc2022`, `2.11-nanoserver-ltsc2022`, `v2-nanoserver-ltsc2022`, `2-nanoserver-ltsc2022`, `mimolette-nanoserver-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/8deaff57a2d889d1198c81e081cb0fdb6819c12a/v2.11/windows/nanoserver-ltsc2022/Dockerfile) + +- [`v2.11.25`, `2.11.25`, `v2.11`, `2.11`, `v2`, `2`, `mimolette`](https://github.com/traefik/traefik-library-image/blob/8deaff57a2d889d1198c81e081cb0fdb6819c12a/v2.11/alpine/Dockerfile) # Quick reference (cont.) @@ -35,7 +42,7 @@ WARNING: [https://github.com/traefik/traefik-library-image/issues](https://github.com/traefik/traefik-library-image/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/traefik/), [`arm32v6`](https://hub.docker.com/r/arm32v6/traefik/), [`arm64v8`](https://hub.docker.com/r/arm64v8/traefik/), [`s390x`](https://hub.docker.com/r/s390x/traefik/), [`windows-amd64`](https://hub.docker.com/r/winamd64/traefik/) + [`amd64`](https://hub.docker.com/r/amd64/traefik/), [`arm32v6`](https://hub.docker.com/r/arm32v6/traefik/), [`arm64v8`](https://hub.docker.com/r/arm64v8/traefik/), [`ppc64le`](https://hub.docker.com/r/ppc64le/traefik/), [`riscv64`](https://hub.docker.com/r/riscv64/traefik/), [`s390x`](https://hub.docker.com/r/s390x/traefik/), [`windows-amd64`](https://hub.docker.com/r/winamd64/traefik/) - **Published image artifact details**: [repo-info repo's `repos/traefik/` directory](https://github.com/docker-library/repo-info/blob/master/repos/traefik) ([history](https://github.com/docker-library/repo-info/commits/master/repos/traefik)) @@ -50,15 +57,15 @@ WARNING: ![logo](https://raw.githubusercontent.com/docker-library/docs/a6cc2c5f4bc6658168f2a0abbb0307acaefff80e/traefik/logo.png) -[Traefik](https://traefik.io) is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. +[Traefik](https://traefik.io) is a modern HTTP reverse proxy and ingress controller that makes deploying microservices easy. -Traefik integrates with your existing infrastructure components ([Docker](https://www.docker.com/), [Swarm mode](https://docs.docker.com/engine/swarm/), [Kubernetes](https://kubernetes.io), [Marathon](https://mesosphere.github.io/marathon/), [Consul](https://www.consul.io/), [Etcd](https://coreos.com/etcd/), [Rancher](https://rancher.com), [Amazon ECS](https://aws.amazon.com/ecs), ...) and configures itself automatically and dynamically. +Traefik integrates with your existing infrastructure components ([Kubernetes](https://kubernetes.io), [Docker](https://www.docker.com/), [Swarm](https://docs.docker.com/engine/swarm/), [Consul](https://www.consul.io/), [Nomad](https://www.nomadproject.io/), [etcd](https://coreos.com/etcd/), [Amazon ECS](https://aws.amazon.com/ecs), ...) and configures itself automatically and dynamically. Pointing Traefik at your orchestrator should be the *only* configuration step you need. -# Traefik v2 - Example usage +## Traefik v3 - Example usage -Enable `docker` provider and web UI: +Enable `docker` provider and dashboard UI: ```yml ## traefik.yml @@ -73,112 +80,116 @@ api: insecure: true ``` -Start Traefik: +Start Traefik v3: -```bash +```sh docker run -d -p 8080:8080 -p 80:80 \ --v $PWD/traefik.yml:/etc/traefik/traefik.yml \ --v /var/run/docker.sock:/var/run/docker.sock \ -traefik:v2.5 + -v $PWD/traefik.yml:/etc/traefik/traefik.yml \ + -v /var/run/docker.sock:/var/run/docker.sock \ + traefik:v3 ``` -Start a backend server, named `test`: +Start a backend server using the `traefik/whoami` image: -```bash +```sh docker run -d --name test traefik/whoami ``` -And finally, you can access to your `whoami` server throught Traefik, on the domain name `test.docker.localhost`: +Access the whoami service through Traefik via the defined rule `test.docker.localhost`: ```console -# $ curl --header 'Host:test.docker.localhost' 'http://localhost/' $ curl test.docker.localhost -Hostname: 390a880bdfab +Hostname: 0693100b16de IP: 127.0.0.1 -IP: 172.17.0.3 +IP: ::1 +IP: 192.168.215.4 +RemoteAddr: 192.168.215.3:57618 GET / HTTP/1.1 Host: test.docker.localhost -User-Agent: curl/7.65.3 +User-Agent: curl/8.7.1 Accept: */* Accept-Encoding: gzip -X-Forwarded-For: 172.17.0.1 +X-Forwarded-For: 192.168.215.1 X-Forwarded-Host: test.docker.localhost X-Forwarded-Port: 80 X-Forwarded-Proto: http -X-Forwarded-Server: 7e073cb54211 -X-Real-Ip: 172.17.0.1 +X-Forwarded-Server: 8a37fd4f35fb +X-Real-Ip: 192.168.215.1 ``` -The web UI [http://localhost:8080](http://localhost:8080) will give you an overview of the routers, services, and middlewares. +Access the Traefik Dashboard: -![Web UI](https://raw.githubusercontent.com/traefik/traefik/v2.5/docs/content/assets/img/webui-dashboard.png) +Open your web browser and navigate to `http://localhost:8080` to access the Traefik dashboard. This will provide an overview of routers, services, and middlewares. -# Traefik v1 - Example usage +![Dashboard UI](https://raw.githubusercontent.com/traefik/traefik/v3.2/docs/content/assets/img/webui-dashboard.png) -Grab a [sample configuration file](https://raw.githubusercontent.com/traefik/traefik/v1.7/traefik.sample.toml) and rename it to `traefik.toml`. Enable `docker` provider and web UI: +## Traefik v2 - Example usage -```toml -## traefik.toml +Enable `docker` provider and dashboard UI: -# API and dashboard configuration -[api] +```yml +## traefik.yml # Docker configuration backend -[docker] - domain = "docker.localhost" +providers: + docker: + defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)" + +# API and dashboard configuration +api: + insecure: true ``` -Start Traefik: +Start Traefik v2: -```bash +```sh docker run -d -p 8080:8080 -p 80:80 \ --v $PWD/traefik.toml:/etc/traefik/traefik.toml \ +-v $PWD/traefik.yml:/etc/traefik/traefik.yml \ -v /var/run/docker.sock:/var/run/docker.sock \ -traefik:v1.7 +traefik:v2.11 ``` -Start a backend server, named `test`: +Start a backend server using the `traefik/whoami` image: -```bash +```sh docker run -d --name test traefik/whoami ``` -And finally, you can access to your `whoami` server throught Traefik, on the domain name `{containerName}.{configuredDomain}` (`test.docker.localhost`): +Access the whoami service through Traefik via the defined rule `test.docker.localhost`: ```console -# $ curl --header 'Host:test.docker.localhost' 'http://localhost/' -$ curl 'http://test.docker.localhost/' -Hostname: 117c5530934d +$ curl test.docker.localhost +Hostname: 390a880bdfab IP: 127.0.0.1 -IP: ::1 IP: 172.17.0.3 -IP: fe80::42:acff:fe11:3 GET / HTTP/1.1 Host: test.docker.localhost -User-Agent: curl/7.35.0 +User-Agent: curl/7.65.3 Accept: */* Accept-Encoding: gzip X-Forwarded-For: 172.17.0.1 -X-Forwarded-Host: 172.17.0.3:80 +X-Forwarded-Host: test.docker.localhost +X-Forwarded-Port: 80 X-Forwarded-Proto: http -X-Forwarded-Server: f2e05c433120 +X-Forwarded-Server: 7e073cb54211 +X-Real-Ip: 172.17.0.1 ``` -The web UI [http://localhost:8080](http://localhost:8080) will give you an overview of the frontends/backends and also a health dashboard. +Access the Traefik Dashboard: -![Web UI Providers](https://raw.githubusercontent.com/traefik/traefik/v1.7/docs/img/web.frontend.png) +Open your web browser and navigate to `http://localhost:8080` to access the Traefik dashboard. This will provide an overview of routers, services, and middlewares. -# Documentation +![Dashboard UI](https://raw.githubusercontent.com/traefik/traefik/v2.0/docs/content/assets/img/webui-dashboard.png) + +## Documentation You can find the complete documentation: -- for [v2.x](https://doc.traefik.io/traefik/) -- for [v1.7](https://doc.traefik.io/traefik/v1.7) +- for [v3.x](https://doc.traefik.io/traefik/) +- for [v2.11](https://doc.traefik.io/traefik/v2.11) A community support is available at [https://community.traefik.io](https://community.traefik.io) -A collection of contributions around Traefik can be found at [https://awesome.traefik.io](https://awesome.traefik.io). - # Image Variants The `traefik` images come in many flavors, each designed for a specific use case. diff --git a/traefik/content.md b/traefik/content.md index e51dfd914812..bc6c593c8dd5 100644 --- a/traefik/content.md +++ b/traefik/content.md @@ -1,14 +1,14 @@ %%LOGO%% -[Traefik](https://traefik.io) is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. +[Traefik](https://traefik.io) is a modern HTTP reverse proxy and ingress controller that makes deploying microservices easy. -Traefik integrates with your existing infrastructure components ([Docker](https://www.docker.com/), [Swarm mode](https://docs.docker.com/engine/swarm/), [Kubernetes](https://kubernetes.io), [Marathon](https://mesosphere.github.io/marathon/), [Consul](https://www.consul.io/), [Etcd](https://coreos.com/etcd/), [Rancher](https://rancher.com), [Amazon ECS](https://aws.amazon.com/ecs), ...) and configures itself automatically and dynamically. +Traefik integrates with your existing infrastructure components ([Kubernetes](https://kubernetes.io), [Docker](https://www.docker.com/), [Swarm](https://docs.docker.com/engine/swarm/), [Consul](https://www.consul.io/), [Nomad](https://www.nomadproject.io/), [etcd](https://coreos.com/etcd/), [Amazon ECS](https://aws.amazon.com/ecs), ...) and configures itself automatically and dynamically. Pointing Traefik at your orchestrator should be the *only* configuration step you need. -# Traefik v2 - Example usage +## Traefik v3 - Example usage -Enable `docker` provider and web UI: +Enable `docker` provider and dashboard UI: ```yml ## traefik.yml @@ -23,108 +23,112 @@ api: insecure: true ``` -Start Traefik: +Start Traefik v3: -```bash +```sh docker run -d -p 8080:8080 -p 80:80 \ --v $PWD/traefik.yml:/etc/traefik/traefik.yml \ --v /var/run/docker.sock:/var/run/docker.sock \ -traefik:v2.5 + -v $PWD/traefik.yml:/etc/traefik/traefik.yml \ + -v /var/run/docker.sock:/var/run/docker.sock \ + %%IMAGE%%:v3 ``` -Start a backend server, named `test`: +Start a backend server using the `traefik/whoami` image: -```bash +```sh docker run -d --name test traefik/whoami ``` -And finally, you can access to your `whoami` server throught Traefik, on the domain name `test.docker.localhost`: +Access the whoami service through Traefik via the defined rule `test.docker.localhost`: ```console -# $ curl --header 'Host:test.docker.localhost' 'http://localhost/' $ curl test.docker.localhost -Hostname: 390a880bdfab +Hostname: 0693100b16de IP: 127.0.0.1 -IP: 172.17.0.3 +IP: ::1 +IP: 192.168.215.4 +RemoteAddr: 192.168.215.3:57618 GET / HTTP/1.1 Host: test.docker.localhost -User-Agent: curl/7.65.3 +User-Agent: curl/8.7.1 Accept: */* Accept-Encoding: gzip -X-Forwarded-For: 172.17.0.1 +X-Forwarded-For: 192.168.215.1 X-Forwarded-Host: test.docker.localhost X-Forwarded-Port: 80 X-Forwarded-Proto: http -X-Forwarded-Server: 7e073cb54211 -X-Real-Ip: 172.17.0.1 +X-Forwarded-Server: 8a37fd4f35fb +X-Real-Ip: 192.168.215.1 ``` -The web UI [http://localhost:8080](http://localhost:8080) will give you an overview of the routers, services, and middlewares. +Access the Traefik Dashboard: -![Web UI](https://raw.githubusercontent.com/traefik/traefik/v2.5/docs/content/assets/img/webui-dashboard.png) +Open your web browser and navigate to `http://localhost:8080` to access the Traefik dashboard. This will provide an overview of routers, services, and middlewares. -# Traefik v1 - Example usage +![Dashboard UI](https://raw.githubusercontent.com/traefik/traefik/v3.2/docs/content/assets/img/webui-dashboard.png) -Grab a [sample configuration file](https://raw.githubusercontent.com/traefik/traefik/v1.7/traefik.sample.toml) and rename it to `traefik.toml`. Enable `docker` provider and web UI: +## Traefik v2 - Example usage -```toml -## traefik.toml +Enable `docker` provider and dashboard UI: -# API and dashboard configuration -[api] +```yml +## traefik.yml # Docker configuration backend -[docker] - domain = "docker.localhost" +providers: + docker: + defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)" + +# API and dashboard configuration +api: + insecure: true ``` -Start Traefik: +Start Traefik v2: -```bash +```sh docker run -d -p 8080:8080 -p 80:80 \ --v $PWD/traefik.toml:/etc/traefik/traefik.toml \ +-v $PWD/traefik.yml:/etc/traefik/traefik.yml \ -v /var/run/docker.sock:/var/run/docker.sock \ -traefik:v1.7 +%%IMAGE%%:v2.11 ``` -Start a backend server, named `test`: +Start a backend server using the `traefik/whoami` image: -```bash +```sh docker run -d --name test traefik/whoami ``` -And finally, you can access to your `whoami` server throught Traefik, on the domain name `{containerName}.{configuredDomain}` (`test.docker.localhost`): +Access the whoami service through Traefik via the defined rule `test.docker.localhost`: ```console -# $ curl --header 'Host:test.docker.localhost' 'http://localhost/' -$ curl 'http://test.docker.localhost/' -Hostname: 117c5530934d +$ curl test.docker.localhost +Hostname: 390a880bdfab IP: 127.0.0.1 -IP: ::1 IP: 172.17.0.3 -IP: fe80::42:acff:fe11:3 GET / HTTP/1.1 Host: test.docker.localhost -User-Agent: curl/7.35.0 +User-Agent: curl/7.65.3 Accept: */* Accept-Encoding: gzip X-Forwarded-For: 172.17.0.1 -X-Forwarded-Host: 172.17.0.3:80 +X-Forwarded-Host: test.docker.localhost +X-Forwarded-Port: 80 X-Forwarded-Proto: http -X-Forwarded-Server: f2e05c433120 +X-Forwarded-Server: 7e073cb54211 +X-Real-Ip: 172.17.0.1 ``` -The web UI [http://localhost:8080](http://localhost:8080) will give you an overview of the frontends/backends and also a health dashboard. +Access the Traefik Dashboard: + +Open your web browser and navigate to `http://localhost:8080` to access the Traefik dashboard. This will provide an overview of routers, services, and middlewares. -![Web UI Providers](https://raw.githubusercontent.com/traefik/traefik/v1.7/docs/img/web.frontend.png) +![Dashboard UI](https://raw.githubusercontent.com/traefik/traefik/v2.0/docs/content/assets/img/webui-dashboard.png) -# Documentation +## Documentation You can find the complete documentation: -- for [v2.x](https://doc.traefik.io/traefik/) -- for [v1.7](https://doc.traefik.io/traefik/v1.7) +- for [v3.x](https://doc.traefik.io/traefik/) +- for [v2.11](https://doc.traefik.io/traefik/v2.11) A community support is available at [https://community.traefik.io](https://community.traefik.io) - -A collection of contributions around Traefik can be found at [https://awesome.traefik.io](https://awesome.traefik.io). diff --git a/traefik/metadata.json b/traefik/metadata.json new file mode 100644 index 000000000000..296c4ec2a848 --- /dev/null +++ b/traefik/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "networking" + ] + } +} diff --git a/ubuntu/README.md b/ubuntu/README.md index d720109e808c..bd1400b7391f 100644 --- a/ubuntu/README.md +++ b/ubuntu/README.md @@ -24,10 +24,15 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`20.04`, `focal-20231003`, `focal`](https://git.launchpad.net/cloud-images/+oci/ubuntu-base/tree/oci/index.json?h=refs/tags/dist-focal-amd64-20231003-9e020e15&id=9e020e15c69afd6448227ca485f23c062a3b8939) -- [`22.04`, `jammy-20231004`, `jammy`, `latest`](https://git.launchpad.net/cloud-images/+oci/ubuntu-base/tree/oci/index.json?h=refs/tags/dist-jammy-amd64-20231004-b438933c&id=b438933cb5f916fc82c2422834bcd6bf6161f3e9) -- [`23.04`, `lunar-20231004`, `lunar`](https://git.launchpad.net/cloud-images/+oci/ubuntu-base/tree/oci/index.json?h=refs/tags/dist-lunar-amd64-20231004-151826dc&id=151826dc80889bec7813dc057ce919012e3dfddd) -- [`23.10`, `mantic-20231011`, `mantic`, `rolling`](https://git.launchpad.net/cloud-images/+oci/ubuntu-base/tree/oci/index.json?h=refs/tags/dist-mantic-amd64-20231011-4ceef731&id=4ceef731f584cc4086b74ef42d52a99f419b7f9c) +- [`22.04`, `jammy-20250530`, `jammy`](https://git.launchpad.net/cloud-images/+oci/ubuntu-base/tree/oci/index.json?h=refs/tags/dist-jammy-amd64-20250530-202257f3&id=202257f3f1e712e9b2e4e9d66d68e028cbed990c) + +- [`24.04`, `noble-20250529`, `noble`, `latest`](https://git.launchpad.net/cloud-images/+oci/ubuntu-base/tree/oci/index.json?h=refs/tags/dist-noble-amd64-20250529-222144ab&id=222144abd5860a6d8ef142eb47fe61d8367cefdb) + +- [`24.10`, `oracular-20250428`, `oracular`](https://git.launchpad.net/cloud-images/+oci/ubuntu-base/tree/oci/index.json?h=refs/tags/dist-oracular-amd64-20250428-c68b0ce8&id=c68b0ce815238e8edacf842c439d3df2fa026b5e) + +- [`25.04`, `plucky-20250521`, `plucky`, `rolling`](https://git.launchpad.net/cloud-images/+oci/ubuntu-base/tree/oci/index.json?h=refs/tags/dist-plucky-amd64-20250521-f96cf5be&id=f96cf5be5b7e848059b5a9297fdbc15fa9a46e8d) + +- [`25.10`, `questing-20250601`, `questing`, `devel`](https://git.launchpad.net/cloud-images/+oci/ubuntu-base/tree/oci/index.json?h=refs/tags/dist-questing-amd64-20250601-0b88f997&id=0b88f99700c9869cad822402a402f3798e3a935b) # Quick reference (cont.) @@ -35,7 +40,7 @@ WARNING: [the cloud-images bug tracker](https://bugs.launchpad.net/cloud-images) (include the `docker` tag) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/ubuntu/), [`arm32v7`](https://hub.docker.com/r/arm32v7/ubuntu/), [`arm64v8`](https://hub.docker.com/r/arm64v8/ubuntu/), [`ppc64le`](https://hub.docker.com/r/ppc64le/ubuntu/), [`s390x`](https://hub.docker.com/r/s390x/ubuntu/) + [`amd64`](https://hub.docker.com/r/amd64/ubuntu/), [`arm32v7`](https://hub.docker.com/r/arm32v7/ubuntu/), [`arm64v8`](https://hub.docker.com/r/arm64v8/ubuntu/), [`ppc64le`](https://hub.docker.com/r/ppc64le/ubuntu/), [`riscv64`](https://hub.docker.com/r/riscv64/ubuntu/), [`s390x`](https://hub.docker.com/r/s390x/ubuntu/) - **Published image artifact details**: [repo-info repo's `repos/ubuntu/` directory](https://github.com/docker-library/repo-info/blob/master/repos/ubuntu) ([history](https://github.com/docker-library/repo-info/commits/master/repos/ubuntu)) @@ -78,14 +83,19 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* ENV LANG en_US.utf8 ``` +## Unminimize + +Starting from [Ubuntu 24.10 "Oracular Oriole"](https://discourse.ubuntu.com/t/oracular-oriole-release-notes/44878#unminimize), the `unminimize` command will no longer be shipped by default on minimal images. It has now been moved to a dedicated package which can be installed via `apt-get install -y unminimize`. + # How is the rootfs built? The tarballs published by Canonical, referenced by `dist-*` tags in https://git.launchpad.net/cloud-images/+oci/ubuntu-base Git repository, are built from scripts that live in [the livecd-rootfs project](https://code.launchpad.net/~ubuntu-core-dev/livecd-rootfs/+git/livecd-rootfs/+ref/ubuntu/master), especially `live-build/auto/build`. The builds are run on Launchpad. For build history see `livefs` build pages of individual releases on Launchpad: -- [Focal](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/focal/ubuntu-oci) - [Jammy](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/jammy/ubuntu-oci) -- [Lunar](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/lunar/ubuntu-oci) -- [Mantic](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/mantic/ubuntu-oci) +- [Noble](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/noble/ubuntu-oci) +- [Oracular](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/oracular/ubuntu-oci) +- [Plucky](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/plucky/ubuntu-oci) +- [Questing](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/questing/ubuntu-oci) # License diff --git a/ubuntu/content.md b/ubuntu/content.md index fe73921c0de3..8a9ac98b4327 100644 --- a/ubuntu/content.md +++ b/ubuntu/content.md @@ -28,11 +28,16 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* ENV LANG en_US.utf8 ``` +## Unminimize + +Starting from [Ubuntu 24.10 "Oracular Oriole"](https://discourse.ubuntu.com/t/oracular-oriole-release-notes/44878#unminimize), the `unminimize` command will no longer be shipped by default on minimal images. It has now been moved to a dedicated package which can be installed via `apt-get install -y unminimize`. + # How is the rootfs built? The tarballs published by Canonical, referenced by `dist-*` tags in https://git.launchpad.net/cloud-images/+oci/ubuntu-base Git repository, are built from scripts that live in [the livecd-rootfs project](https://code.launchpad.net/~ubuntu-core-dev/livecd-rootfs/+git/livecd-rootfs/+ref/ubuntu/master), especially `live-build/auto/build`. The builds are run on Launchpad. For build history see `livefs` build pages of individual releases on Launchpad: -- [Focal](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/focal/ubuntu-oci) - [Jammy](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/jammy/ubuntu-oci) -- [Lunar](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/lunar/ubuntu-oci) -- [Mantic](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/mantic/ubuntu-oci) +- [Noble](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/noble/ubuntu-oci) +- [Oracular](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/oracular/ubuntu-oci) +- [Plucky](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/plucky/ubuntu-oci) +- [Questing](https://launchpad.net/~cloud-images-release-managers/+livefs/ubuntu/questing/ubuntu-oci) diff --git a/ubuntu/metadata.json b/ubuntu/metadata.json new file mode 100644 index 000000000000..df07586b5b35 --- /dev/null +++ b/ubuntu/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "operating-systems" + ] + } +} diff --git a/unit/README.md b/unit/README.md index 824ba318d5b2..b407c4f38273 100644 --- a/unit/README.md +++ b/unit/README.md @@ -24,18 +24,39 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.31.1-go1.21`, `go1.21`, `go1`, `go`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.go1.21) -- [`1.31.1-go1.20`, `go1.20`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.go1.20) -- [`1.31.1-jsc11`, `jsc11`, `jsc`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.jsc11) -- [`1.31.1-node20`, `node20`, `node`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.node20) -- [`1.31.1-node18`, `node18`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.node18) -- [`1.31.1-perl5.38`, `perl5.38`, `perl5`, `perl`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.perl5.38) -- [`1.31.1-perl5.36`, `perl5.36`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.perl5.36) -- [`1.31.1-php8.2`, `php8.2`, `php8`, `php`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.php8.2) -- [`1.31.1-python3.11`, `python3.11`, `python3`, `python`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.python3.11) -- [`1.31.1-ruby3.2`, `ruby3.2`, `ruby3`, `ruby`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.ruby3.2) -- [`1.31.1-wasm`, `wasm`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.wasm) -- [`1.31.1-minimal`, `minimal`, `latest`](https://github.com/nginx/unit/blob/fb33ec86a3b6ca6a844dfa6980bb9e083094abec/pkg/docker/Dockerfile.minimal) +- [`1.34.2-go1.24`, `go1.24`, `go1`, `go`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.go1.24) + +- [`1.34.2-go1.23`, `go1.23`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.go1.23) + +- [`1.34.2-jsc11`, `jsc11`, `jsc`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.jsc11) + +- [`1.34.2-node22`, `node22`, `node`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.node22) + +- [`1.34.2-node20`, `node20`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.node20) + +- [`1.34.2-perl5.40`, `perl5.40`, `perl5`, `perl`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.perl5.40) + +- [`1.34.2-perl5.38`, `perl5.38`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.perl5.38) + +- [`1.34.2-php8.4`, `php8.4`, `php8`, `php`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.php8.4) + +- [`1.34.2-php8.3`, `php8.3`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.php8.3) + +- [`1.34.2-python3.13`, `python3.13`, `python3`, `python`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.python3.13) + +- [`1.34.2-python3.12`, `python3.12`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.python3.12) + +- [`1.34.2-ruby3.3`, `ruby3.3`, `ruby3`, `ruby`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.ruby3.3) + +- [`1.34.2-ruby3.2`, `ruby3.2`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.ruby3.2) + +- [`1.34.2-python3.13-slim`, `python-slim`, `python3-slim`, `python3.13-slim`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.python3.13-slim) + +- [`1.34.2-python3.12-slim`, `python3.12-slim`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.python3.12-slim) + +- [`1.34.2-wasm`, `wasm`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.wasm) + +- [`1.34.2-minimal`, `minimal`, `latest`](https://github.com/nginx/unit/blob/bda6a949b8a9f3f5ebe0e961ae52756ceb9dbb68/pkg/docker/Dockerfile.minimal) # Quick reference (cont.) @@ -72,6 +93,18 @@ Please see [Unit's website](https://unit.nginx.org/installation/#docker-images) Please check the [Initial Configuration](https://unit.nginx.org/installation/#initial-configuration) section on Unit's website. Additionally, our [Docker howto](https://unit.nginx.org/howto/docker/) can be of help. +# Image Variants + +The `unit` images come in many flavors, each designed for a specific use case. + +## `unit:` + +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. + +## `unit:-slim` + +This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run `unit`. Unless you are working in an environment where *only* the `unit` image will be deployed and you have space constraints, we highly recommend using the default image of this repository. + # License View [license information](https://raw.githubusercontent.com/nginx/unit/master/LICENSE) for the software contained in this image. diff --git a/unit/metadata.json b/unit/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/unit/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/update.sh b/update.sh index 0b73bf051ba3..a4744445695e 100755 --- a/update.sh +++ b/update.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -Eeuo pipefail cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" @@ -86,22 +86,11 @@ for image in "${images[@]}"; do logo="![logo]($logoUrl)" fi - stack= - stackYml= - stackUrl= - if [ -f "$repo/stack.yml" ]; then - stack="$(cat "$repo/stack.md" 2>/dev/null || cat "$helperDir/stack.md")" - stackYml=$'```yaml\n'"$(cat "$repo/stack.yml")"$'\n```' - stackCommit="$(git log -1 --format='format:%H' -- "$repo/stack.yml" 2>/dev/null || true)" - [ "$stackCommit" ] || stackCommit='master' - stackUrl="https://raw.githubusercontent.com/docker-library/docs/$stackCommit/$repo/stack.yml" - fi - compose= - composeYml= - if [ -f "$repo/docker-compose.yml" ]; then + composeYaml= + if [ -f "$repo/compose.yaml" ]; then compose="$(cat "$repo/compose.md" 2>/dev/null || cat "$helperDir/compose.md")" - composeYml=$'```yaml\n'"$(cat "$repo/docker-compose.yml")"$'\n```' + composeYaml=$'```yaml\n'"$(cat "$repo/compose.yaml")"$'\n```' fi deprecated= @@ -145,10 +134,6 @@ for image in "${images[@]}"; do # opensuse, etc partial='**No supported tags**' fi - elif [ -n "$ARCH_SPECIFIC_DOCS" ]; then - jenkinsJobUrl="https://doi-janky.infosiftr.net/job/multiarch/job/$BASHBREW_ARCH/job/$repo/" - jenkinsImageUrl="https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/$BASHBREW_ARCH/job/$repo.svg?label=%%IMAGE%%%20%20build%20job" - partial+=$'\n\n''[![%%IMAGE%% build status badge]('"$jenkinsImageUrl"')]('"$jenkinsJobUrl"')' fi replace_field "$targetFile" 'TAGS' "$partial" @@ -167,17 +152,10 @@ for image in "${images[@]}"; do echo " LOGO => $logo" replace_field "$targetFile" 'LOGO' "$logo" '\s*' - echo ' STACK => '"$repo"'/stack.md' - replace_field "$targetFile" 'STACK' "$stack" - echo ' STACK-YML => '"$repo"'/stack.yml' - replace_field "$targetFile" 'STACK-YML' "$stackYml" - echo ' STACK-URL => '"$repo"'/stack.yml' - replace_field "$targetFile" 'STACK-URL' "$stackUrl" - echo ' COMPOSE => '"$repo"'/compose.md' replace_field "$targetFile" 'COMPOSE' "$compose" - echo ' COMPOSE-YML => '"$repo"'/docker-compose.yml' - replace_field "$targetFile" 'COMPOSE-YML' "$composeYml" + echo ' COMPOSE-YAML => '"$repo"'/compose.yaml' + replace_field "$targetFile" 'COMPOSE-YAML' "$composeYaml" echo ' LICENSE => '"$repo"'/license.md' replace_field "$targetFile" 'LICENSE' "$license" diff --git a/varnish/README.md b/varnish/README.md index ca082a3d8806..69a62492c373 100644 --- a/varnish/README.md +++ b/varnish/README.md @@ -24,11 +24,15 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`fresh`, `7.4.2`, `7.4`, `latest`](https://github.com/varnish/docker-varnish/blob/0c295b528f28a98650fb2580eab6d34b30b165c4/fresh/debian/Dockerfile) -- [`fresh-alpine`, `7.4.2-alpine`, `7.4-alpine`, `alpine`](https://github.com/varnish/docker-varnish/blob/0c295b528f28a98650fb2580eab6d34b30b165c4/fresh/alpine/Dockerfile) -- [`old`, `7.3.1`, `7.3`](https://github.com/varnish/docker-varnish/blob/0c295b528f28a98650fb2580eab6d34b30b165c4/old/debian/Dockerfile) -- [`old-alpine`, `7.3.1-alpine`, `7.3-alpine`](https://github.com/varnish/docker-varnish/blob/0c295b528f28a98650fb2580eab6d34b30b165c4/old/alpine/Dockerfile) -- [`stable`, `6.0.12`, `6.0`](https://github.com/varnish/docker-varnish/blob/0c295b528f28a98650fb2580eab6d34b30b165c4/stable/debian/Dockerfile) +- [`fresh`, `7.7.1`, `7`, `7.7`, `latest`](https://github.com/varnish/docker-varnish/blob/ed86c8d78292bb13fe129ba5dcccfd8d11ed1481/fresh/debian/Dockerfile) + +- [`fresh-alpine`, `7.7.1-alpine`, `7-alpine`, `7.7-alpine`, `alpine`](https://github.com/varnish/docker-varnish/blob/ed86c8d78292bb13fe129ba5dcccfd8d11ed1481/fresh/alpine/Dockerfile) + +- [`old`, `7.6.3`, `7.6`](https://github.com/varnish/docker-varnish/blob/ea97ed35f2b0eb438ccd6a9250c36567686bfb4a/old/debian/Dockerfile) + +- [`old-alpine`, `7.6.3-alpine`, `7.6-alpine`](https://github.com/varnish/docker-varnish/blob/ea97ed35f2b0eb438ccd6a9250c36567686bfb4a/old/alpine/Dockerfile) + +- [`stable`, `6.0.14`, `6.0`](https://github.com/varnish/docker-varnish/blob/ea97ed35f2b0eb438ccd6a9250c36567686bfb4a/stable/debian/Dockerfile) # Quick reference (cont.) @@ -61,34 +65,26 @@ Varnish is an HTTP accelerator designed for content-heavy dynamic web sites as w ## Basic usage -Create a `default.vcl` file: - -```vcl -# specify the VCL syntax version to use -vcl 4.1; +### Using `VARNISH_BACKEND_HOST` and `VARNISH_BACKEND_PORT` -# import vmod_dynamic for better backend name resolution -import dynamic; +You just need to know where your backend (the server that Varnish will accelerate) is: -# we won't use any static backend, but Varnish still need a default one -backend default none; +```console +# we define VARNISH_BACKEND_HOST/VARNISH_BACKEND_PORT +# our workdir has to be mounted as tmpfs to avoid disk I/O, +# and we'll use port 8080 to talk to our container (internally listening on 80) +$ docker run \ + -e VARNISH_BACKEND_HOST=example.com -e VARNISH_BACKEND_PORT=80 \ + --tmpfs /var/lib/varnish/varnishd:exec \ + -p 8080:80 \ + varnish +``` -# set up a dynamic director -# for more info, see https://github.com/nigoroll/libvmod-dynamic/blob/master/src/vmod_dynamic.vcc -sub vcl_init { - new d = dynamic.director(port = "80"); -} +From there, you can visit `localhost:8080` in your browser and see the example.com homepage. -sub vcl_recv { - # force the host header to match the backend (not all backends need it, - # but example.com does) - set req.http.host = "example.com"; - # set the backend - set req.backend_hint = d.backend("example.com"); -} -``` +### Using a VCL file -Then run: +If you already have a VCL file, you can directly mount it as `/etc/varnish/default.vcl`: ```console # we need the configuration file at /etc/varnish/default.vcl, @@ -101,9 +97,7 @@ $ docker run \ varnish ``` -From there, you can visit `localhost:8080` in your browser and see the example.com homepage. - -Alternatively, a simple `Dockerfile` can be used to generate a new image that includes the necessary `default.vcl` (which is a much cleaner solution than the bind mount above): +Alternatively, a simple `Dockerfile` can be used to generate a new image that includes the necessary `default.vcl`: ```dockerfile FROM varnish diff --git a/varnish/content.md b/varnish/content.md index b76c7937e2f0..064acd3e36af 100644 --- a/varnish/content.md +++ b/varnish/content.md @@ -10,34 +10,26 @@ Varnish is an HTTP accelerator designed for content-heavy dynamic web sites as w ## Basic usage -Create a `default.vcl` file: - -```vcl -# specify the VCL syntax version to use -vcl 4.1; - -# import vmod_dynamic for better backend name resolution -import dynamic; - -# we won't use any static backend, but Varnish still need a default one -backend default none; - -# set up a dynamic director -# for more info, see https://github.com/nigoroll/libvmod-dynamic/blob/master/src/vmod_dynamic.vcc -sub vcl_init { - new d = dynamic.director(port = "80"); -} - -sub vcl_recv { - # force the host header to match the backend (not all backends need it, - # but example.com does) - set req.http.host = "example.com"; - # set the backend - set req.backend_hint = d.backend("example.com"); -} +### Using `VARNISH_BACKEND_HOST` and `VARNISH_BACKEND_PORT` + +You just need to know where your backend (the server that Varnish will accelerate) is: + +```console +# we define VARNISH_BACKEND_HOST/VARNISH_BACKEND_PORT +# our workdir has to be mounted as tmpfs to avoid disk I/O, +# and we'll use port 8080 to talk to our container (internally listening on 80) +$ docker run \ + -e VARNISH_BACKEND_HOST=example.com -e VARNISH_BACKEND_PORT=80 \ + --tmpfs /var/lib/varnish/varnishd:exec \ + -p 8080:80 \ + %%IMAGE%% ``` -Then run: +From there, you can visit `localhost:8080` in your browser and see the example.com homepage. + +### Using a VCL file + +If you already have a VCL file, you can directly mount it as `/etc/varnish/default.vcl`: ```console # we need the configuration file at /etc/varnish/default.vcl, @@ -50,9 +42,7 @@ $ docker run \ %%IMAGE%% ``` -From there, you can visit `localhost:8080` in your browser and see the example.com homepage. - -Alternatively, a simple `Dockerfile` can be used to generate a new image that includes the necessary `default.vcl` (which is a much cleaner solution than the bind mount above): +Alternatively, a simple `Dockerfile` can be used to generate a new image that includes the necessary `default.vcl`: ```dockerfile FROM %%IMAGE%% diff --git a/varnish/metadata.json b/varnish/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/varnish/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/vault/README-short.txt b/vault/README-short.txt deleted file mode 100644 index 62cc264925d0..000000000000 --- a/vault/README-short.txt +++ /dev/null @@ -1 +0,0 @@ -Vault is a tool for securely accessing secrets via a unified interface and tight access control. diff --git a/vault/README.md b/vault/README.md deleted file mode 100644 index 070f38c14b56..000000000000 --- a/vault/README.md +++ /dev/null @@ -1,131 +0,0 @@ - - -# **DEPRECATION NOTICE** - -Upcoming in Vault 1.14, we will stop publishing official Dockerhub images and publish only our Verified Publisher images. Users of Docker images should pull from [hashicorp/vault](https://hub.docker.com/r/hashicorp/vault) instead of [vault](https://hub.docker.com/_/vault). Verified Publisher images can be found at https://hub.docker.com/r/hashicorp/vault. - -# Quick reference - -- **Maintained by**: - [HashiCorp](https://github.com/hashicorp/docker-vault) - -- **Where to get help**: - [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) - -# Supported tags and respective `Dockerfile` links - -- [`1.13.3`](https://github.com/hashicorp/docker-vault/blob/152f49d818b2764c437ee1fd20ee4d13791a8296/0.X/Dockerfile) -- [`1.12.7`](https://github.com/hashicorp/docker-vault/blob/48d258c844d65814e16c123f8d3750a4e73e4350/0.X/Dockerfile) -- [`1.11.11`](https://github.com/hashicorp/docker-vault/blob/e90ed0d020018291fabd520e9c36196c1e58f049/0.X/Dockerfile) - -# Quick reference (cont.) - -- **Where to file issues**: - [https://github.com/hashicorp/docker-vault/issues](https://github.com/hashicorp/docker-vault/issues?q=) - -- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/vault/), [`arm32v6`](https://hub.docker.com/r/arm32v6/vault/), [`arm64v8`](https://hub.docker.com/r/arm64v8/vault/), [`i386`](https://hub.docker.com/r/i386/vault/) - -- **Published image artifact details**: - [repo-info repo's `repos/vault/` directory](https://github.com/docker-library/repo-info/blob/master/repos/vault) ([history](https://github.com/docker-library/repo-info/commits/master/repos/vault)) - (image metadata, transfer size, etc) - -- **Image updates**: - [official-images repo's `library/vault` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fvault) - [official-images repo's `library/vault` file](https://github.com/docker-library/official-images/blob/master/library/vault) ([history](https://github.com/docker-library/official-images/commits/master/library/vault)) - -- **Source of this description**: - [docs repo's `vault/` directory](https://github.com/docker-library/docs/tree/master/vault) ([history](https://github.com/docker-library/docs/commits/master/vault)) - -# Vault - -Vault is a tool for securely accessing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, and more. Vault provides a unified interface to any secret, while providing tight access control and recording a detailed audit log. For more information, please see: - -- [Vault documentation](https://www.vaultproject.io/) -- [Vault on GitHub](https://github.com/hashicorp/vault) - -![logo](https://raw.githubusercontent.com/docker-library/docs/90d4d43bdfccd5cb21e5fd964d32b0074af0f357/vault/logo.svg?sanitize=true) - -# Using the Container - -We chose Alpine as a lightweight base with a reasonably small surface area for security concerns, but with enough functionality for development and interactive debugging. - -Vault always runs under [dumb-init](https://github.com/Yelp/dumb-init), which handles reaping zombie processes and forwards signals on to all processes running in the container. This binary is built by HashiCorp and signed with our [GPG key](https://www.hashicorp.com/security.html), so you can verify the signed package used to build a given base image. - -Running the Vault container with no arguments will give you a Vault server in [development mode](https://www.vaultproject.io/docs/concepts/dev-server.html). The provided entry point script will also look for Vault subcommands and run `vault` with that subcommand. For example, you can execute `docker run vault status` and it will run the `vault status` command inside the container. The entry point also adds some special configuration options as detailed in the sections below when running the `server` subcommand. Any other command gets `exec`-ed inside the container under `dumb-init`. - -The container exposes two optional `VOLUME`s: - -- `/vault/logs`, to use for writing persistent audit logs. By default nothing is written here; the `file` audit backend must be enabled with a path under this directory. -- `/vault/file`, to use for writing persistent storage data when using the`file` data storage plugin. By default nothing is written here (a `dev` server uses an in-memory data store); the `file` data storage backend must be enabled in Vault's configuration before the container is started. - -The container has a Vault configuration directory set up at `/vault/config` and the server will load any HCL or JSON configuration files placed here by binding a volume or by composing a new image and adding files. Alternatively, configuration can be added by passing the configuration JSON via environment variable `VAULT_LOCAL_CONFIG`. - -## Memory Locking and 'setcap' - -The container will attempt to lock memory to prevent sensitive values from being swapped to disk and as a result must have `--cap-add=IPC_LOCK` provided to `docker run`. Since the Vault binary runs as a non-root user, `setcap` is used to give the binary the ability to lock memory. With some Docker storage plugins in some distributions this call will not work correctly; it seems to fail most often with AUFS. The memory locking behavior can be disabled by setting the `SKIP_SETCAP` environment variable to any non-empty value. - -## Running Vault for Development - -```console -$ docker run --cap-add=IPC_LOCK -d --name=dev-vault vault -``` - -This runs a completely in-memory Vault server, which is useful for development but should not be used in production. - -When running in development mode, two additional options can be set via environment variables: - -- `VAULT_DEV_ROOT_TOKEN_ID`: This sets the ID of the initial generated root token to the given value -- `VAULT_DEV_LISTEN_ADDRESS`: This sets the IP:port of the development server listener (defaults to 0.0.0.0:8200) - -As an example: - -```console -$ docker run --cap-add=IPC_LOCK -e 'VAULT_DEV_ROOT_TOKEN_ID=myroot' -e 'VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:1234' vault -``` - -## Running Vault in Server Mode for Development - -```console -$ docker run --cap-add=IPC_LOCK -e 'VAULT_LOCAL_CONFIG={"storage": {"file": {"path": "/vault/file"}}, "listener": [{"tcp": { "address": "0.0.0.0:8200", "tls_disable": true}}], "default_lease_ttl": "168h", "max_lease_ttl": "720h", "ui": true}' -p 8200:8200 vault server -``` - -This runs a Vault server with TLS disabled, the `file` storage backend at path `/vault/file` and a default secret lease duration of one week and a maximum of 30 days. Disabling TLS and using the `file` storage backend are not recommended for production use. - -Note the `--cap-add=IPC_LOCK`: this is required in order for Vault to lock memory, which prevents it from being swapped to disk. This is highly recommended. In a non-development environment, if you do not wish to use this functionality, you must add `"disable_mlock: true"` to the configuration information. - -At startup, the server will read configuration HCL and JSON files from `/vault/config` (any information passed into `VAULT_LOCAL_CONFIG` is written into `local.json` in this directory and read as part of reading the directory for configuration files). Please see Vault's [configuration documentation](https://www.vaultproject.io/docs/config/index.html) for a full list of options. - -We suggest volume mounting a directory into the Docker image in order to give both the configuration and TLS certificates to Vault. You can accomplish this with: - -```console -$ docker run --volume config/:/vault/config.d ... -``` - -For more scalability and reliability, we suggest running containerized Vault in an orchestration environment like k8s or OpenShift. - -Since 0.6.3 this container also supports the `VAULT_REDIRECT_INTERFACE` and `VAULT_CLUSTER_INTERFACE` environment variables. If set, the IP addresses used for the redirect and cluster addresses in Vault's configuration will be the address of the named interface inside the container (e.g. `eth0`). - -# License - -View [license information](https://raw.githubusercontent.com/hashicorp/vault/master/LICENSE) for the software contained in this image. - -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). - -Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `vault/` directory](https://github.com/docker-library/repo-info/tree/master/repos/vault). - -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. diff --git a/vault/content.md b/vault/content.md deleted file mode 100644 index d3a27503d7e0..000000000000 --- a/vault/content.md +++ /dev/null @@ -1,68 +0,0 @@ -# Vault - -Vault is a tool for securely accessing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, and more. Vault provides a unified interface to any secret, while providing tight access control and recording a detailed audit log. For more information, please see: - -- [Vault documentation](https://www.vaultproject.io/) -- [Vault on GitHub](https://github.com/hashicorp/vault) - -%%LOGO%% - -# Using the Container - -We chose Alpine as a lightweight base with a reasonably small surface area for security concerns, but with enough functionality for development and interactive debugging. - -Vault always runs under [dumb-init](https://github.com/Yelp/dumb-init), which handles reaping zombie processes and forwards signals on to all processes running in the container. This binary is built by HashiCorp and signed with our [GPG key](https://www.hashicorp.com/security.html), so you can verify the signed package used to build a given base image. - -Running the Vault container with no arguments will give you a Vault server in [development mode](https://www.vaultproject.io/docs/concepts/dev-server.html). The provided entry point script will also look for Vault subcommands and run `vault` with that subcommand. For example, you can execute `docker run vault status` and it will run the `vault status` command inside the container. The entry point also adds some special configuration options as detailed in the sections below when running the `server` subcommand. Any other command gets `exec`-ed inside the container under `dumb-init`. - -The container exposes two optional `VOLUME`s: - -- `/vault/logs`, to use for writing persistent audit logs. By default nothing is written here; the `file` audit backend must be enabled with a path under this directory. -- `/vault/file`, to use for writing persistent storage data when using the`file` data storage plugin. By default nothing is written here (a `dev` server uses an in-memory data store); the `file` data storage backend must be enabled in Vault's configuration before the container is started. - -The container has a Vault configuration directory set up at `/vault/config` and the server will load any HCL or JSON configuration files placed here by binding a volume or by composing a new image and adding files. Alternatively, configuration can be added by passing the configuration JSON via environment variable `VAULT_LOCAL_CONFIG`. - -## Memory Locking and 'setcap' - -The container will attempt to lock memory to prevent sensitive values from being swapped to disk and as a result must have `--cap-add=IPC_LOCK` provided to `docker run`. Since the Vault binary runs as a non-root user, `setcap` is used to give the binary the ability to lock memory. With some Docker storage plugins in some distributions this call will not work correctly; it seems to fail most often with AUFS. The memory locking behavior can be disabled by setting the `SKIP_SETCAP` environment variable to any non-empty value. - -## Running Vault for Development - -```console -$ docker run --cap-add=IPC_LOCK -d --name=dev-vault %%IMAGE%% -``` - -This runs a completely in-memory Vault server, which is useful for development but should not be used in production. - -When running in development mode, two additional options can be set via environment variables: - -- `VAULT_DEV_ROOT_TOKEN_ID`: This sets the ID of the initial generated root token to the given value -- `VAULT_DEV_LISTEN_ADDRESS`: This sets the IP:port of the development server listener (defaults to 0.0.0.0:8200) - -As an example: - -```console -$ docker run --cap-add=IPC_LOCK -e 'VAULT_DEV_ROOT_TOKEN_ID=myroot' -e 'VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:1234' %%IMAGE%% -``` - -## Running Vault in Server Mode for Development - -```console -$ docker run --cap-add=IPC_LOCK -e 'VAULT_LOCAL_CONFIG={"storage": {"file": {"path": "/vault/file"}}, "listener": [{"tcp": { "address": "0.0.0.0:8200", "tls_disable": true}}], "default_lease_ttl": "168h", "max_lease_ttl": "720h", "ui": true}' -p 8200:8200 %%IMAGE%% server -``` - -This runs a Vault server with TLS disabled, the `file` storage backend at path `/vault/file` and a default secret lease duration of one week and a maximum of 30 days. Disabling TLS and using the `file` storage backend are not recommended for production use. - -Note the `--cap-add=IPC_LOCK`: this is required in order for Vault to lock memory, which prevents it from being swapped to disk. This is highly recommended. In a non-development environment, if you do not wish to use this functionality, you must add `"disable_mlock: true"` to the configuration information. - -At startup, the server will read configuration HCL and JSON files from `/vault/config` (any information passed into `VAULT_LOCAL_CONFIG` is written into `local.json` in this directory and read as part of reading the directory for configuration files). Please see Vault's [configuration documentation](https://www.vaultproject.io/docs/config/index.html) for a full list of options. - -We suggest volume mounting a directory into the Docker image in order to give both the configuration and TLS certificates to Vault. You can accomplish this with: - -```console -$ docker run --volume config/:/vault/config.d ... -``` - -For more scalability and reliability, we suggest running containerized Vault in an orchestration environment like k8s or OpenShift. - -Since 0.6.3 this container also supports the `VAULT_REDIRECT_INTERFACE` and `VAULT_CLUSTER_INTERFACE` environment variables. If set, the IP addresses used for the redirect and cluster addresses in Vault's configuration will be the address of the named interface inside the container (e.g. `eth0`). diff --git a/vault/deprecated.md b/vault/deprecated.md deleted file mode 100644 index 5a601656e8b9..000000000000 --- a/vault/deprecated.md +++ /dev/null @@ -1 +0,0 @@ -Upcoming in Vault 1.14, we will stop publishing official Dockerhub images and publish only our Verified Publisher images. Users of Docker images should pull from [hashicorp/vault](https://hub.docker.com/r/hashicorp/vault) instead of [vault](https://hub.docker.com/_/vault). Verified Publisher images can be found at https://hub.docker.com/r/hashicorp/vault. diff --git a/vault/github-repo b/vault/github-repo deleted file mode 100644 index a4a1b4c45f2e..000000000000 --- a/vault/github-repo +++ /dev/null @@ -1 +0,0 @@ -https://github.com/hashicorp/docker-vault diff --git a/vault/license.md b/vault/license.md deleted file mode 100644 index 2111daccf7f8..000000000000 --- a/vault/license.md +++ /dev/null @@ -1 +0,0 @@ -View [license information](https://raw.githubusercontent.com/hashicorp/vault/master/LICENSE) for the software contained in this image. diff --git a/vault/logo.svg b/vault/logo.svg deleted file mode 100644 index 86094d3162f5..000000000000 --- a/vault/logo.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vault/maintainer.md b/vault/maintainer.md deleted file mode 120000 index ef4100e019a3..000000000000 --- a/vault/maintainer.md +++ /dev/null @@ -1 +0,0 @@ -../.common-templates/maintainer-hashicorp.md \ No newline at end of file diff --git a/websphere-liberty/README-short.txt b/websphere-liberty/README-short.txt index e5e2c189ce77..c6a5d34389b2 100644 --- a/websphere-liberty/README-short.txt +++ b/websphere-liberty/README-short.txt @@ -1 +1 @@ -WebSphere Liberty multi-architecture images based on Ubuntu 18.04 +WebSphere Liberty multi-architecture images based on Ubuntu diff --git a/websphere-liberty/README.md b/websphere-liberty/README.md index 456b6d9331c0..9a6b99cf5691 100644 --- a/websphere-liberty/README.md +++ b/websphere-liberty/README.md @@ -24,30 +24,41 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`kernel`, `kernel-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/latest/kernel/Dockerfile.ubuntu.ibmjava8) -- [`kernel-java11-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/latest/kernel/Dockerfile.ubuntu.openjdk11) -- [`kernel-java17-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/latest/kernel/Dockerfile.ubuntu.openjdk17) -- [`full`, `latest`, `full-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/latest/full/Dockerfile.ubuntu.ibmjava8) -- [`full-java11-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/latest/full/Dockerfile.ubuntu.openjdk11) -- [`full-java17-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/latest/full/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.11-kernel-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.11/kernel/Dockerfile.ubuntu.ibmjava8) -- [`23.0.0.11-kernel-java11-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.11/kernel/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.11-kernel-java17-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.11/kernel/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.11-full-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.11/full/Dockerfile.ubuntu.ibmjava8) -- [`23.0.0.11-full-java11-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.11/full/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.11-full-java17-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.11/full/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.9-kernel-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.9/kernel/Dockerfile.ubuntu.ibmjava8) -- [`23.0.0.9-kernel-java11-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.9/kernel/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.9-kernel-java17-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.9/kernel/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.9-full-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.9/full/Dockerfile.ubuntu.ibmjava8) -- [`23.0.0.9-full-java11-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.9/full/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.9-full-java17-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.9/full/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.6-kernel-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.6/kernel/Dockerfile.ubuntu.ibmjava8) -- [`23.0.0.6-kernel-java11-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.6/kernel/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.6-kernel-java17-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.6/kernel/Dockerfile.ubuntu.openjdk17) -- [`23.0.0.6-full-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.6/full/Dockerfile.ubuntu.ibmjava8) -- [`23.0.0.6-full-java11-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.6/full/Dockerfile.ubuntu.openjdk11) -- [`23.0.0.6-full-java17-openj9`](https://github.com/WASdev/ci.docker/blob/2c3df836888eae2173798f31d0fb492f89f8999e/ga/23.0.0.6/full/Dockerfile.ubuntu.openjdk17) +- [`kernel`, `kernel-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/latest/kernel/Dockerfile.ubuntu.ibmjava8) + +- [`kernel-java11-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/latest/kernel/Dockerfile.ubuntu.openjdk11) + +- [`kernel-java17-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/latest/kernel/Dockerfile.ubuntu.openjdk17) + +- [`full`, `latest`, `full-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/latest/full/Dockerfile.ubuntu.ibmjava8) + +- [`full-java11-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/latest/full/Dockerfile.ubuntu.openjdk11) + +- [`full-java17-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/latest/full/Dockerfile.ubuntu.openjdk17) + +- [`25.0.0.3-kernel-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.3/kernel/Dockerfile.ubuntu.ibmjava8) + +- [`25.0.0.3-kernel-java11-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.3/kernel/Dockerfile.ubuntu.openjdk11) + +- [`25.0.0.3-kernel-java17-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.3/kernel/Dockerfile.ubuntu.openjdk17) + +- [`25.0.0.3-full-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.3/full/Dockerfile.ubuntu.ibmjava8) + +- [`25.0.0.3-full-java11-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.3/full/Dockerfile.ubuntu.openjdk11) + +- [`25.0.0.3-full-java17-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.3/full/Dockerfile.ubuntu.openjdk17) + +- [`25.0.0.6-kernel-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.6/kernel/Dockerfile.ubuntu.ibmjava8) + +- [`25.0.0.6-kernel-java11-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.6/kernel/Dockerfile.ubuntu.openjdk11) + +- [`25.0.0.6-kernel-java17-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.6/kernel/Dockerfile.ubuntu.openjdk17) + +- [`25.0.0.6-full-java8-ibmjava`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.6/full/Dockerfile.ubuntu.ibmjava8) + +- [`25.0.0.6-full-java11-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.6/full/Dockerfile.ubuntu.openjdk11) + +- [`25.0.0.6-full-java17-openj9`](https://github.com/WASdev/ci.docker/blob/923e41779be731923cac0f6bb2d3c2f737eedd17/ga/25.0.0.6/full/Dockerfile.ubuntu.openjdk17) # Quick reference (cont.) diff --git a/websphere-liberty/metadata.json b/websphere-liberty/metadata.json new file mode 100644 index 000000000000..1f306a0037fd --- /dev/null +++ b/websphere-liberty/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "web-servers" + ] + } +} diff --git a/wordpress/README.md b/wordpress/README.md index 08d8e3838ed3..50cc2fa76042 100644 --- a/wordpress/README.md +++ b/wordpress/README.md @@ -24,18 +24,37 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`6.4.1-apache`, `6.4-apache`, `6-apache`, `apache`, `6.4.1`, `6.4`, `6`, `latest`, `6.4.1-php8.0-apache`, `6.4-php8.0-apache`, `6-php8.0-apache`, `php8.0-apache`, `6.4.1-php8.0`, `6.4-php8.0`, `6-php8.0`, `php8.0`](https://github.com/docker-library/wordpress/blob/4b4966247eb33c6c219cf682f1750ed5685d21c9/latest/php8.0/apache/Dockerfile) -- [`6.4.1-fpm`, `6.4-fpm`, `6-fpm`, `fpm`, `6.4.1-php8.0-fpm`, `6.4-php8.0-fpm`, `6-php8.0-fpm`, `php8.0-fpm`](https://github.com/docker-library/wordpress/blob/4b4966247eb33c6c219cf682f1750ed5685d21c9/latest/php8.0/fpm/Dockerfile) -- [`6.4.1-fpm-alpine`, `6.4-fpm-alpine`, `6-fpm-alpine`, `fpm-alpine`, `6.4.1-php8.0-fpm-alpine`, `6.4-php8.0-fpm-alpine`, `6-php8.0-fpm-alpine`, `php8.0-fpm-alpine`](https://github.com/docker-library/wordpress/blob/4b4966247eb33c6c219cf682f1750ed5685d21c9/latest/php8.0/fpm-alpine/Dockerfile) -- [`6.4.1-php8.1-apache`, `6.4-php8.1-apache`, `6-php8.1-apache`, `php8.1-apache`, `6.4.1-php8.1`, `6.4-php8.1`, `6-php8.1`, `php8.1`](https://github.com/docker-library/wordpress/blob/4b4966247eb33c6c219cf682f1750ed5685d21c9/latest/php8.1/apache/Dockerfile) -- [`6.4.1-php8.1-fpm`, `6.4-php8.1-fpm`, `6-php8.1-fpm`, `php8.1-fpm`](https://github.com/docker-library/wordpress/blob/4b4966247eb33c6c219cf682f1750ed5685d21c9/latest/php8.1/fpm/Dockerfile) -- [`6.4.1-php8.1-fpm-alpine`, `6.4-php8.1-fpm-alpine`, `6-php8.1-fpm-alpine`, `php8.1-fpm-alpine`](https://github.com/docker-library/wordpress/blob/4b4966247eb33c6c219cf682f1750ed5685d21c9/latest/php8.1/fpm-alpine/Dockerfile) -- [`6.4.1-php8.2-apache`, `6.4-php8.2-apache`, `6-php8.2-apache`, `php8.2-apache`, `6.4.1-php8.2`, `6.4-php8.2`, `6-php8.2`, `php8.2`](https://github.com/docker-library/wordpress/blob/4b4966247eb33c6c219cf682f1750ed5685d21c9/latest/php8.2/apache/Dockerfile) -- [`6.4.1-php8.2-fpm`, `6.4-php8.2-fpm`, `6-php8.2-fpm`, `php8.2-fpm`](https://github.com/docker-library/wordpress/blob/4b4966247eb33c6c219cf682f1750ed5685d21c9/latest/php8.2/fpm/Dockerfile) -- [`6.4.1-php8.2-fpm-alpine`, `6.4-php8.2-fpm-alpine`, `6-php8.2-fpm-alpine`, `php8.2-fpm-alpine`](https://github.com/docker-library/wordpress/blob/4b4966247eb33c6c219cf682f1750ed5685d21c9/latest/php8.2/fpm-alpine/Dockerfile) -- [`cli-2.9.0`, `cli-2.9`, `cli-2`, `cli`, `cli-2.9.0-php8.0`, `cli-2.9-php8.0`, `cli-2-php8.0`, `cli-php8.0`](https://github.com/docker-library/wordpress/blob/480b5c35eb6382f4ae5581cfb9dfe54873d4f4a0/cli/php8.0/alpine/Dockerfile) -- [`cli-2.9.0-php8.1`, `cli-2.9-php8.1`, `cli-2-php8.1`, `cli-php8.1`](https://github.com/docker-library/wordpress/blob/480b5c35eb6382f4ae5581cfb9dfe54873d4f4a0/cli/php8.1/alpine/Dockerfile) -- [`cli-2.9.0-php8.2`, `cli-2.9-php8.2`, `cli-2-php8.2`, `cli-php8.2`](https://github.com/docker-library/wordpress/blob/480b5c35eb6382f4ae5581cfb9dfe54873d4f4a0/cli/php8.2/alpine/Dockerfile) +- [`6.8.1-php8.1-apache`, `6.8-php8.1-apache`, `6-php8.1-apache`, `php8.1-apache`, `6.8.1-php8.1`, `6.8-php8.1`, `6-php8.1`, `php8.1`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.1/apache/Dockerfile) + +- [`6.8.1-php8.1-fpm`, `6.8-php8.1-fpm`, `6-php8.1-fpm`, `php8.1-fpm`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.1/fpm/Dockerfile) + +- [`6.8.1-php8.1-fpm-alpine`, `6.8-php8.1-fpm-alpine`, `6-php8.1-fpm-alpine`, `php8.1-fpm-alpine`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.1/fpm-alpine/Dockerfile) + +- [`6.8.1-apache`, `6.8-apache`, `6-apache`, `apache`, `6.8.1`, `6.8`, `6`, `latest`, `6.8.1-php8.2-apache`, `6.8-php8.2-apache`, `6-php8.2-apache`, `php8.2-apache`, `6.8.1-php8.2`, `6.8-php8.2`, `6-php8.2`, `php8.2`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.2/apache/Dockerfile) + +- [`6.8.1-fpm`, `6.8-fpm`, `6-fpm`, `fpm`, `6.8.1-php8.2-fpm`, `6.8-php8.2-fpm`, `6-php8.2-fpm`, `php8.2-fpm`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.2/fpm/Dockerfile) + +- [`6.8.1-fpm-alpine`, `6.8-fpm-alpine`, `6-fpm-alpine`, `fpm-alpine`, `6.8.1-php8.2-fpm-alpine`, `6.8-php8.2-fpm-alpine`, `6-php8.2-fpm-alpine`, `php8.2-fpm-alpine`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.2/fpm-alpine/Dockerfile) + +- [`6.8.1-php8.3-apache`, `6.8-php8.3-apache`, `6-php8.3-apache`, `php8.3-apache`, `6.8.1-php8.3`, `6.8-php8.3`, `6-php8.3`, `php8.3`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.3/apache/Dockerfile) + +- [`6.8.1-php8.3-fpm`, `6.8-php8.3-fpm`, `6-php8.3-fpm`, `php8.3-fpm`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.3/fpm/Dockerfile) + +- [`6.8.1-php8.3-fpm-alpine`, `6.8-php8.3-fpm-alpine`, `6-php8.3-fpm-alpine`, `php8.3-fpm-alpine`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.3/fpm-alpine/Dockerfile) + +- [`6.8.1-php8.4-apache`, `6.8-php8.4-apache`, `6-php8.4-apache`, `php8.4-apache`, `6.8.1-php8.4`, `6.8-php8.4`, `6-php8.4`, `php8.4`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.4/apache/Dockerfile) + +- [`6.8.1-php8.4-fpm`, `6.8-php8.4-fpm`, `6-php8.4-fpm`, `php8.4-fpm`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.4/fpm/Dockerfile) + +- [`6.8.1-php8.4-fpm-alpine`, `6.8-php8.4-fpm-alpine`, `6-php8.4-fpm-alpine`, `php8.4-fpm-alpine`](https://github.com/docker-library/wordpress/blob/b8721d7271bf763d999285985277d61e78c584aa/latest/php8.4/fpm-alpine/Dockerfile) + +- [`cli-2.12.0-php8.1`, `cli-2.12-php8.1`, `cli-2-php8.1`, `cli-php8.1`](https://github.com/docker-library/wordpress/blob/50da133eabc137fa07c620c77788c1237cf55c8b/cli/php8.1/alpine/Dockerfile) + +- [`cli-2.12.0`, `cli-2.12`, `cli-2`, `cli`, `cli-2.12.0-php8.2`, `cli-2.12-php8.2`, `cli-2-php8.2`, `cli-php8.2`](https://github.com/docker-library/wordpress/blob/50da133eabc137fa07c620c77788c1237cf55c8b/cli/php8.2/alpine/Dockerfile) + +- [`cli-2.12.0-php8.3`, `cli-2.12-php8.3`, `cli-2-php8.3`, `cli-php8.3`](https://github.com/docker-library/wordpress/blob/50da133eabc137fa07c620c77788c1237cf55c8b/cli/php8.3/alpine/Dockerfile) + +- [`cli-2.12.0-php8.4`, `cli-2.12-php8.4`, `cli-2-php8.4`, `cli-php8.4`](https://github.com/docker-library/wordpress/blob/50da133eabc137fa07c620c77788c1237cf55c8b/cli/php8.4/alpine/Dockerfile) # Quick reference (cont.) @@ -43,7 +62,7 @@ WARNING: [https://github.com/docker-library/wordpress/issues](https://github.com/docker-library/wordpress/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/wordpress/), [`arm32v5`](https://hub.docker.com/r/arm32v5/wordpress/), [`arm32v6`](https://hub.docker.com/r/arm32v6/wordpress/), [`arm32v7`](https://hub.docker.com/r/arm32v7/wordpress/), [`arm64v8`](https://hub.docker.com/r/arm64v8/wordpress/), [`i386`](https://hub.docker.com/r/i386/wordpress/), [`mips64le`](https://hub.docker.com/r/mips64le/wordpress/), [`ppc64le`](https://hub.docker.com/r/ppc64le/wordpress/), [`s390x`](https://hub.docker.com/r/s390x/wordpress/) + [`amd64`](https://hub.docker.com/r/amd64/wordpress/), [`arm32v5`](https://hub.docker.com/r/arm32v5/wordpress/), [`arm32v6`](https://hub.docker.com/r/arm32v6/wordpress/), [`arm32v7`](https://hub.docker.com/r/arm32v7/wordpress/), [`arm64v8`](https://hub.docker.com/r/arm64v8/wordpress/), [`i386`](https://hub.docker.com/r/i386/wordpress/), [`mips64le`](https://hub.docker.com/r/mips64le/wordpress/), [`ppc64le`](https://hub.docker.com/r/ppc64le/wordpress/), [`riscv64`](https://hub.docker.com/r/riscv64/wordpress/), [`s390x`](https://hub.docker.com/r/s390x/wordpress/) - **Published image artifact details**: [repo-info repo's `repos/wordpress/` directory](https://github.com/docker-library/repo-info/blob/master/repos/wordpress) ([history](https://github.com/docker-library/repo-info/commits/master/repos/wordpress)) @@ -79,7 +98,7 @@ The following environment variables are also honored for configuring your WordPr - `-e WORDPRESS_TABLE_PREFIX=...` - `-e WORDPRESS_AUTH_KEY=...`, `-e WORDPRESS_SECURE_AUTH_KEY=...`, `-e WORDPRESS_LOGGED_IN_KEY=...`, `-e WORDPRESS_NONCE_KEY=...`, `-e WORDPRESS_AUTH_SALT=...`, `-e WORDPRESS_SECURE_AUTH_SALT=...`, `-e WORDPRESS_LOGGED_IN_SALT=...`, `-e WORDPRESS_NONCE_SALT=...` (default to unique random SHA1s, but only if other environment variable configuration is provided) - `-e WORDPRESS_DEBUG=1` (defaults to disabled, non-empty value will enable `WP_DEBUG` in `wp-config.php`) -- `-e WORDPRESS_CONFIG_EXTRA=...` (defaults to nothing, non-empty value will be embedded verbatim inside `wp-config.php` -- especially useful for applying extra configuration values this image does not provide by default such as `WP_ALLOW_MULTISITE`; see [docker-library/wordpress#142](https://github.com/docker-library/wordpress/pull/142) for more details) +- `-e WORDPRESS_CONFIG_EXTRA=...` (defaults to nothing, the value will be evaluated by the `eval()` function in `wp-config.php`. This variable is especially useful for applying extra configuration values this image does not provide by default such as `WP_ALLOW_MULTISITE`; see [docker-library/wordpress#142](https://github.com/docker-library/wordpress/pull/142) for more details) The `WORDPRESS_DB_NAME` needs to already exist on the given MySQL server; it will not be created by the `wordpress` container. @@ -105,13 +124,11 @@ $ docker run --name some-wordpress -e WORDPRESS_DB_PASSWORD_FILE=/run/secrets/my Currently, this is supported for `WORDPRESS_DB_HOST`, `WORDPRESS_DB_USER`, `WORDPRESS_DB_PASSWORD`, `WORDPRESS_DB_NAME`, `WORDPRESS_AUTH_KEY`, `WORDPRESS_SECURE_AUTH_KEY`, `WORDPRESS_LOGGED_IN_KEY`, `WORDPRESS_NONCE_KEY`, `WORDPRESS_AUTH_SALT`, `WORDPRESS_SECURE_AUTH_SALT`, `WORDPRESS_LOGGED_IN_SALT`, `WORDPRESS_NONCE_SALT`, `WORDPRESS_TABLE_PREFIX`, and `WORDPRESS_DEBUG`. -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `wordpress`: +Example `compose.yaml` for `wordpress`: ```yaml -version: '3.1' - services: wordpress: @@ -128,7 +145,7 @@ services: - wordpress:/var/www/html db: - image: mysql:5.7 + image: mysql:8.0 restart: always environment: MYSQL_DATABASE: exampledb @@ -143,9 +160,7 @@ volumes: db: ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/456252a739783650c79bd1f6a7a19101fbecfc65/wordpress/stack.yml) - -Run `docker stack deploy -c stack.yml wordpress` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Adding additional libraries / extensions @@ -224,15 +239,15 @@ This is the defacto image. If you are unsure about what your needs are, you prob ## `wordpress:-fpm` -This variant contains PHP-FPM, which is a FastCGI implementation for PHP. See [the PHP-FPM website](https://php-fpm.org/) for more information about PHP-FPM. +This variant contains [PHP's FastCGI Process Manager (FPM)](https://www.php.net/fpm), which is the recommended FastCGI implementation for PHP. In order to use this image variant, some kind of reverse proxy (such as NGINX, Apache, or other tool which speaks the FastCGI protocol) will be required. Some potentially helpful resources: -- [PHP-FPM.org](https://php-fpm.org/) -- [simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) -- [very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) +- [FPM's Official Configuration Reference](https://www.php.net/manual/en/install.fpm.configuration.php) +- [Simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) +- [Very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) - [Stack Overflow discussion](https://stackoverflow.com/q/29905953/433558) - [Apache httpd Wiki example](https://wiki.apache.org/httpd/PHPFPMWordpress) diff --git a/wordpress/stack.yml b/wordpress/compose.yaml similarity index 93% rename from wordpress/stack.yml rename to wordpress/compose.yaml index 68198d1ed648..3fac6b715464 100644 --- a/wordpress/stack.yml +++ b/wordpress/compose.yaml @@ -1,5 +1,3 @@ -version: '3.1' - services: wordpress: @@ -16,7 +14,7 @@ services: - wordpress:/var/www/html db: - image: mysql:5.7 + image: mysql:8.0 restart: always environment: MYSQL_DATABASE: exampledb diff --git a/wordpress/content.md b/wordpress/content.md index 3f60fe112d1c..2559aad5836e 100644 --- a/wordpress/content.md +++ b/wordpress/content.md @@ -21,7 +21,7 @@ The following environment variables are also honored for configuring your WordPr - `-e WORDPRESS_TABLE_PREFIX=...` - `-e WORDPRESS_AUTH_KEY=...`, `-e WORDPRESS_SECURE_AUTH_KEY=...`, `-e WORDPRESS_LOGGED_IN_KEY=...`, `-e WORDPRESS_NONCE_KEY=...`, `-e WORDPRESS_AUTH_SALT=...`, `-e WORDPRESS_SECURE_AUTH_SALT=...`, `-e WORDPRESS_LOGGED_IN_SALT=...`, `-e WORDPRESS_NONCE_SALT=...` (default to unique random SHA1s, but only if other environment variable configuration is provided) - `-e WORDPRESS_DEBUG=1` (defaults to disabled, non-empty value will enable `WP_DEBUG` in `wp-config.php`) -- `-e WORDPRESS_CONFIG_EXTRA=...` (defaults to nothing, non-empty value will be embedded verbatim inside `wp-config.php` -- especially useful for applying extra configuration values this image does not provide by default such as `WP_ALLOW_MULTISITE`; see [docker-library/wordpress#142](https://github.com/docker-library/wordpress/pull/142) for more details) +- `-e WORDPRESS_CONFIG_EXTRA=...` (defaults to nothing, the value will be evaluated by the `eval()` function in `wp-config.php`. This variable is especially useful for applying extra configuration values this image does not provide by default such as `WP_ALLOW_MULTISITE`; see [docker-library/wordpress#142](https://github.com/docker-library/wordpress/pull/142) for more details) The `WORDPRESS_DB_NAME` needs to already exist on the given MySQL server; it will not be created by the `%%REPO%%` container. @@ -47,9 +47,9 @@ $ docker run --name some-%%REPO%% -e WORDPRESS_DB_PASSWORD_FILE=/run/secrets/mys Currently, this is supported for `WORDPRESS_DB_HOST`, `WORDPRESS_DB_USER`, `WORDPRESS_DB_PASSWORD`, `WORDPRESS_DB_NAME`, `WORDPRESS_AUTH_KEY`, `WORDPRESS_SECURE_AUTH_KEY`, `WORDPRESS_LOGGED_IN_KEY`, `WORDPRESS_NONCE_KEY`, `WORDPRESS_AUTH_SALT`, `WORDPRESS_SECURE_AUTH_SALT`, `WORDPRESS_LOGGED_IN_SALT`, `WORDPRESS_NONCE_SALT`, `WORDPRESS_TABLE_PREFIX`, and `WORDPRESS_DEBUG`. -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate). ## Adding additional libraries / extensions diff --git a/wordpress/metadata.json b/wordpress/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/wordpress/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/xwiki/README.md b/xwiki/README.md index 43cb42c96a22..2e20f0ac6532 100644 --- a/xwiki/README.md +++ b/xwiki/README.md @@ -24,15 +24,17 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`15`, `15.9`, `15.9.0`, `15-mysql-tomcat`, `15.9-mysql-tomcat`, `15.9.0-mysql-tomcat`, `mysql-tomcat`, `stable-mysql-tomcat`, `stable-mysql`, `stable`, `latest`](https://github.com/xwiki-contrib/docker-xwiki/blob/d1e6ca12c746ebb805e079bc1ff10ac26bb65dd3/15/mysql-tomcat/Dockerfile) -- [`15-postgres-tomcat`, `15.9-postgres-tomcat`, `15.9.0-postgres-tomcat`, `postgres-tomcat`, `stable-postgres-tomcat`, `stable-postgres`](https://github.com/xwiki-contrib/docker-xwiki/blob/d1e6ca12c746ebb805e079bc1ff10ac26bb65dd3/15/postgres-tomcat/Dockerfile) -- [`15-mariadb-tomcat`, `15.9-mariadb-tomcat`, `15.9.0-mariadb-tomcat`, `mariadb-tomcat`, `stable-mariadb-tomcat`, `stable-mariadb`](https://github.com/xwiki-contrib/docker-xwiki/blob/d1e6ca12c746ebb805e079bc1ff10ac26bb65dd3/15/mariadb-tomcat/Dockerfile) -- [`14`, `14.10`, `14.10.19`, `14-mysql-tomcat`, `14.10-mysql-tomcat`, `14.10.19-mysql-tomcat`, `lts-mysql-tomcat`, `lts-mysql`, `lts`](https://github.com/xwiki-contrib/docker-xwiki/blob/5ce3629a4fb321a195723638041217ff4a384b1b/14/mysql-tomcat/Dockerfile) -- [`14-postgres-tomcat`, `14.10-postgres-tomcat`, `14.10.19-postgres-tomcat`, `lts-postgres-tomcat`, `lts-postgres`](https://github.com/xwiki-contrib/docker-xwiki/blob/5ce3629a4fb321a195723638041217ff4a384b1b/14/postgres-tomcat/Dockerfile) -- [`14-mariadb-tomcat`, `14.10-mariadb-tomcat`, `14.10.19-mariadb-tomcat`, `lts-mariadb-tomcat`, `lts-mariadb`](https://github.com/xwiki-contrib/docker-xwiki/blob/5ce3629a4fb321a195723638041217ff4a384b1b/14/mariadb-tomcat/Dockerfile) -- [`15.5`, `15.5.3`, `15.5-mysql-tomcat`, `15.5.3-mysql-tomcat`](https://github.com/xwiki-contrib/docker-xwiki/blob/d1e6ca12c746ebb805e079bc1ff10ac26bb65dd3/15.5/mysql-tomcat/Dockerfile) -- [`15.5-postgres-tomcat`, `15.5.3-postgres-tomcat`](https://github.com/xwiki-contrib/docker-xwiki/blob/d1e6ca12c746ebb805e079bc1ff10ac26bb65dd3/15.5/postgres-tomcat/Dockerfile) -- [`15.5-mariadb-tomcat`, `15.5.3-mariadb-tomcat`](https://github.com/xwiki-contrib/docker-xwiki/blob/d1e6ca12c746ebb805e079bc1ff10ac26bb65dd3/15.5/mariadb-tomcat/Dockerfile) +- [`17`, `17.4`, `17.4.1`, `17-mysql-tomcat`, `17.4-mysql-tomcat`, `17.4.1-mysql-tomcat`, `mysql-tomcat`, `stable-mysql-tomcat`, `stable-mysql`, `stable`, `latest`](https://github.com/xwiki-contrib/docker-xwiki/blob/edc5062ac1533654c21f074b65980ea57305c495/17/mysql-tomcat/Dockerfile) + +- [`17-postgres-tomcat`, `17.4-postgres-tomcat`, `17.4.1-postgres-tomcat`, `postgres-tomcat`, `stable-postgres-tomcat`, `stable-postgres`](https://github.com/xwiki-contrib/docker-xwiki/blob/edc5062ac1533654c21f074b65980ea57305c495/17/postgres-tomcat/Dockerfile) + +- [`17-mariadb-tomcat`, `17.4-mariadb-tomcat`, `17.4.1-mariadb-tomcat`, `mariadb-tomcat`, `stable-mariadb-tomcat`, `stable-mariadb`](https://github.com/xwiki-contrib/docker-xwiki/blob/edc5062ac1533654c21f074b65980ea57305c495/17/mariadb-tomcat/Dockerfile) + +- [`16`, `16.10`, `16.10.8`, `16-mysql-tomcat`, `16.10-mysql-tomcat`, `16.10.8-mysql-tomcat`, `lts-mysql-tomcat`, `lts-mysql`, `lts`](https://github.com/xwiki-contrib/docker-xwiki/blob/432858b827200132c33219374999c43a4a8d6f5b/16/mysql-tomcat/Dockerfile) + +- [`16-postgres-tomcat`, `16.10-postgres-tomcat`, `16.10.8-postgres-tomcat`, `lts-postgres-tomcat`, `lts-postgres`](https://github.com/xwiki-contrib/docker-xwiki/blob/432858b827200132c33219374999c43a4a8d6f5b/16/postgres-tomcat/Dockerfile) + +- [`16-mariadb-tomcat`, `16.10-mariadb-tomcat`, `16.10.8-mariadb-tomcat`, `lts-mariadb-tomcat`, `lts-mariadb`](https://github.com/xwiki-contrib/docker-xwiki/blob/432858b827200132c33219374999c43a4a8d6f5b/16/mariadb-tomcat/Dockerfile) # Quick reference (cont.) diff --git a/xwiki/metadata.json b/xwiki/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/xwiki/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/ymlfmt.sh b/ymlfmt.sh index a83bbeb4c2d9..8ab8b937ba1a 100755 --- a/ymlfmt.sh +++ b/ymlfmt.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -e exec docker run -i --rm -v "$PWD":/scratch -w /scratch -u "$(id -u):$(id -g)" tianon/ymlfmt ymlfmt "$@" diff --git a/yourls/README.md b/yourls/README.md index 0144763c6466..2eb1675ff79a 100644 --- a/yourls/README.md +++ b/yourls/README.md @@ -24,9 +24,11 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.9.2-apache`, `1.9-apache`, `1-apache`, `apache`, `1.9.2`, `1.9`, `1`, `latest`](https://github.com/YOURLS/docker/blob/2ef3b5fe2539efd8dd876727376ddee2c22079b5/apache/Dockerfile) -- [`1.9.2-fpm`, `1.9-fpm`, `1-fpm`, `fpm`](https://github.com/YOURLS/docker/blob/2ef3b5fe2539efd8dd876727376ddee2c22079b5/fpm/Dockerfile) -- [`1.9.2-fpm-alpine`, `1.9-fpm-alpine`, `1-fpm-alpine`, `fpm-alpine`](https://github.com/YOURLS/docker/blob/2ef3b5fe2539efd8dd876727376ddee2c22079b5/fpm-alpine/Dockerfile) +- [`1.10.1-apache`, `1.10-apache`, `1-apache`, `apache`, `1.10.1`, `1.10`, `1`, `latest`](https://github.com/YOURLS/images/blob/d306b06d6b3e94f1441c65385395f7a384a46101/apache/Dockerfile) + +- [`1.10.1-fpm`, `1.10-fpm`, `1-fpm`, `fpm`](https://github.com/YOURLS/images/blob/d306b06d6b3e94f1441c65385395f7a384a46101/fpm/Dockerfile) + +- [`1.10.1-fpm-alpine`, `1.10-fpm-alpine`, `1-fpm-alpine`, `fpm-alpine`](https://github.com/YOURLS/images/blob/d306b06d6b3e94f1441c65385395f7a384a46101/fpm-alpine/Dockerfile) # Quick reference (cont.) @@ -34,7 +36,7 @@ WARNING: [https://github.com/YOURLS/docker/issues](https://github.com/YOURLS/docker/issues?q=) - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) - [`amd64`](https://hub.docker.com/r/amd64/yourls/), [`arm32v5`](https://hub.docker.com/r/arm32v5/yourls/), [`arm32v6`](https://hub.docker.com/r/arm32v6/yourls/), [`arm32v7`](https://hub.docker.com/r/arm32v7/yourls/), [`arm64v8`](https://hub.docker.com/r/arm64v8/yourls/), [`i386`](https://hub.docker.com/r/i386/yourls/), [`mips64le`](https://hub.docker.com/r/mips64le/yourls/), [`ppc64le`](https://hub.docker.com/r/ppc64le/yourls/), [`s390x`](https://hub.docker.com/r/s390x/yourls/) + [`amd64`](https://hub.docker.com/r/amd64/yourls/), [`arm32v5`](https://hub.docker.com/r/arm32v5/yourls/), [`arm32v6`](https://hub.docker.com/r/arm32v6/yourls/), [`arm32v7`](https://hub.docker.com/r/arm32v7/yourls/), [`arm64v8`](https://hub.docker.com/r/arm64v8/yourls/), [`i386`](https://hub.docker.com/r/i386/yourls/), [`mips64le`](https://hub.docker.com/r/mips64le/yourls/), [`ppc64le`](https://hub.docker.com/r/ppc64le/yourls/), [`riscv64`](https://hub.docker.com/r/riscv64/yourls/), [`s390x`](https://hub.docker.com/r/s390x/yourls/) - **Published image artifact details**: [repo-info repo's `repos/yourls/` directory](https://github.com/docker-library/repo-info/blob/master/repos/yourls) ([history](https://github.com/docker-library/repo-info/commits/master/repos/yourls)) @@ -91,7 +93,7 @@ Then, access it via `http://localhost:8080/admin/` or `http://:8080/adm ## Environment Variables When you start the `yourls` image, you can adjust the configuration of the YOURLS instance by passing one or more environment variables on the `docker run` command line. -The YOURLS instance accepts [a number of environment variables for configuration](https://yourls.org/#Config). +The YOURLS instance accepts [a number of environment variables for configuration](https://yourls.org/docs/guide/essentials/configuration). A few notable/important examples for using this Docker image include the following. ### `YOURLS_SITE` @@ -141,13 +143,11 @@ $ docker run --name some-yourls -e YOURLS_DB_PASS_FILE=/run/secrets/mysql-root . Currently, this is supported for `YOURLS_DB_HOST`, `YOURLS_DB_USER`, `YOURLS_DB_PASS`, `YOURLS_DB_NAME`, `YOURLS_DB_PREFIX`, `YOURLS_SITE`, `YOURLS_USER`, and `YOURLS_PASS`. -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `yourls`: +Example `compose.yaml` for `yourls`: ```yaml -version: '3.1' - services: yourls: @@ -169,9 +169,7 @@ services: MYSQL_DATABASE: yourls ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/6dba1507190ff91149046ce4bcbac43529d76bd4/yourls/stack.yml) - -Run `docker stack deploy -c stack.yml yourls` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080/admin/`, `http://localhost:8080/admin/`, or `http://:8080/admin/` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080/admin/` or `http://:8080/admin/` (as appropriate). ## Adding additional libraries / extensions @@ -193,15 +191,15 @@ This is the defacto image. If you are unsure about what your needs are, you prob ## `yourls:-fpm` -This variant contains PHP-FPM, which is a FastCGI implementation for PHP. See [the PHP-FPM website](https://php-fpm.org/) for more information about PHP-FPM. +This variant contains [PHP's FastCGI Process Manager (FPM)](https://www.php.net/fpm), which is the recommended FastCGI implementation for PHP. In order to use this image variant, some kind of reverse proxy (such as NGINX, Apache, or other tool which speaks the FastCGI protocol) will be required. Some potentially helpful resources: -- [PHP-FPM.org](https://php-fpm.org/) -- [simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) -- [very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) +- [FPM's Official Configuration Reference](https://www.php.net/manual/en/install.fpm.configuration.php) +- [Simplified example by @md5](https://gist.github.com/md5/d9206eacb5a0ff5d6be0) +- [Very detailed article by Pascal Landau](https://www.pascallandau.com/blog/php-php-fpm-and-nginx-on-docker-in-windows-10/) - [Stack Overflow discussion](https://stackoverflow.com/q/29905953/433558) - [Apache httpd Wiki example](https://wiki.apache.org/httpd/PHPFPMWordpress) diff --git a/yourls/stack.yml b/yourls/compose.yaml similarity index 95% rename from yourls/stack.yml rename to yourls/compose.yaml index 2c467f98effd..87af36411f98 100644 --- a/yourls/stack.yml +++ b/yourls/compose.yaml @@ -1,5 +1,3 @@ -version: '3.1' - services: yourls: diff --git a/yourls/content.md b/yourls/content.md index 404ab6d96da2..13bec42f52b5 100644 --- a/yourls/content.md +++ b/yourls/content.md @@ -42,7 +42,7 @@ Then, access it via `http://localhost:8080/admin/` or `http://:8080/adm ## Environment Variables When you start the `yourls` image, you can adjust the configuration of the YOURLS instance by passing one or more environment variables on the `docker run` command line. -The YOURLS instance accepts [a number of environment variables for configuration](https://yourls.org/#Config). +The YOURLS instance accepts [a number of environment variables for configuration](https://yourls.org/docs/guide/essentials/configuration). A few notable/important examples for using this Docker image include the following. ### `YOURLS_SITE` @@ -92,9 +92,9 @@ $ docker run --name some-%%REPO%% -e YOURLS_DB_PASS_FILE=/run/secrets/mysql-root Currently, this is supported for `YOURLS_DB_HOST`, `YOURLS_DB_USER`, `YOURLS_DB_PASS`, `YOURLS_DB_NAME`, `YOURLS_DB_PREFIX`, `YOURLS_SITE`, `YOURLS_USER`, and `YOURLS_PASS`. -## %%STACK%% +## %%COMPOSE%% -Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080/admin/`, `http://localhost:8080/admin/`, or `http://:8080/admin/` (as appropriate). +Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080/admin/` or `http://:8080/admin/` (as appropriate). ## Adding additional libraries / extensions diff --git a/yourls/metadata.json b/yourls/metadata.json new file mode 100644 index 000000000000..180157012a86 --- /dev/null +++ b/yourls/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "content-management-system" + ] + } +} diff --git a/znc/README.md b/znc/README.md index ffffaf8aea3e..5e442850f49b 100644 --- a/znc/README.md +++ b/znc/README.md @@ -24,8 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`1.8.2`, `1.8`, `latest`](https://github.com/znc/znc-docker/blob/d5bb727806f238f95bc74fcc182042932cd60c11/full/Dockerfile) -- [`1.8.2-slim`, `1.8-slim`, `slim`](https://github.com/znc/znc-docker/blob/d5bb727806f238f95bc74fcc182042932cd60c11/slim/Dockerfile) +- [`1.10.0`, `1.10`, `latest`](https://github.com/znc/znc-docker/blob/83082df630a0da0ef2d3724aa0299fba193ac096/full/Dockerfile) + +- [`1.10.0-slim`, `1.10-slim`, `slim`](https://github.com/znc/znc-docker/blob/83082df630a0da0ef2d3724aa0299fba193ac096/slim/Dockerfile) # Quick reference (cont.) diff --git a/znc/metadata.json b/znc/metadata.json new file mode 100644 index 000000000000..e90624aca4ca --- /dev/null +++ b/znc/metadata.json @@ -0,0 +1,5 @@ +{ + "hub": { + "categories": [] + } +} diff --git a/zookeeper/README.md b/zookeeper/README.md index 5b4102ad39d9..c6c4ec56e884 100644 --- a/zookeeper/README.md +++ b/zookeeper/README.md @@ -24,12 +24,9 @@ WARNING: # Supported tags and respective `Dockerfile` links -- [`3.7.2`, `3.7`, `3.7.2-jre-11`, `3.7-jre-11`](https://github.com/31z4/zookeeper-docker/blob/dd520cb108da9eafe6914dce4e5dbd4877dd2411/3.7.2/Dockerfile) -- [`3.8.3`, `3.8`, `3.8.3-jre-11`, `3.8-jre-11`](https://github.com/31z4/zookeeper-docker/blob/dd520cb108da9eafe6914dce4e5dbd4877dd2411/3.8.3/Dockerfile) -- [`3.9.1`, `3.9`, `3.9.1-jre-11`, `3.9-jre-11`](https://github.com/31z4/zookeeper-docker/blob/dd520cb108da9eafe6914dce4e5dbd4877dd2411/3.9.1/Dockerfile) -- [`3.7.2-jre-17`, `3.7-jre-17`](https://github.com/31z4/zookeeper-docker/blob/5076660820c73f3b119cbdd1267c25a1e29cbbf4/3.7.2/Dockerfile) -- [`3.8.3-jre-17`, `3.8-jre-17`](https://github.com/31z4/zookeeper-docker/blob/5076660820c73f3b119cbdd1267c25a1e29cbbf4/3.8.3/Dockerfile) -- [`3.9.1-jre-17`, `3.9-jre-17`, `latest`](https://github.com/31z4/zookeeper-docker/blob/5076660820c73f3b119cbdd1267c25a1e29cbbf4/3.9.1/Dockerfile) +- [`3.8.4`, `3.8`, `3.8.4-jre-17`, `3.8-jre-17`](https://github.com/31z4/zookeeper-docker/blob/ec1050affd761a7886c1f1f5d18165c19d3143e8/3.8.4/Dockerfile) + +- [`3.9.3`, `3.9`, `3.9.3-jre-17`, `3.9-jre-17`, `latest`](https://github.com/31z4/zookeeper-docker/blob/268d33caa089426f4f173ba0bac9277919f88dc7/3.9.3/Dockerfile) # Quick reference (cont.) @@ -80,13 +77,11 @@ $ docker run --name some-app --link some-zookeeper:zookeeper -d application-that $ docker run -it --rm --link some-zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper ``` -## ... via [`docker-compose`](https://github.com/docker/compose) or [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) +## ... via [`docker compose`](https://github.com/docker/compose) -Example `docker-compose.yml` for `zookeeper`: +Example `compose.yaml` for `zookeeper`: ```yaml -version: '3.1' - services: zoo1: image: zookeeper @@ -119,9 +114,7 @@ services: ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 ``` -[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/fb51d93e6bb1e8b773a728d297a45b834f04d3d1/zookeeper/stack.yml) - -This will start Zookeeper in [replicated mode](https://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_RunningReplicatedZooKeeper). Run `docker stack deploy -c stack.yml zookeeper` (or `docker-compose -f stack.yml up`) and wait for it to initialize completely. Ports `2181-2183` will be exposed. +This will start Zookeeper in [replicated mode](https://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_RunningReplicatedZooKeeper). Run `docker compose up` and wait for it to initialize completely. Ports `2181-2183` will be exposed. > Please be aware that setting up multiple servers on a single machine will not create any redundancy. If something were to happen which caused the machine to die, all of the zookeeper servers would be offline. Full redundancy requires that each server have its own machine. It must be a completely separate physical server. Multiple virtual machines on the same physical host are still vulnerable to the complete failure of that host. diff --git a/zookeeper/stack.yml b/zookeeper/compose.yaml similarity index 97% rename from zookeeper/stack.yml rename to zookeeper/compose.yaml index cec88f0dce55..9cbbeb2085ab 100644 --- a/zookeeper/stack.yml +++ b/zookeeper/compose.yaml @@ -1,5 +1,3 @@ -version: '3.1' - services: zoo1: image: zookeeper diff --git a/zookeeper/content.md b/zookeeper/content.md index 67fce24545da..c63bfee4b82c 100644 --- a/zookeeper/content.md +++ b/zookeeper/content.md @@ -28,9 +28,9 @@ $ docker run --name some-app --link some-zookeeper:zookeeper -d application-that $ docker run -it --rm --link some-zookeeper:zookeeper %%IMAGE%% zkCli.sh -server zookeeper ``` -## %%STACK%% +## %%COMPOSE%% -This will start Zookeeper in [replicated mode](https://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_RunningReplicatedZooKeeper). Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`) and wait for it to initialize completely. Ports `2181-2183` will be exposed. +This will start Zookeeper in [replicated mode](https://zookeeper.apache.org/doc/current/zookeeperStarted.html#sc_RunningReplicatedZooKeeper). Run `docker compose up` and wait for it to initialize completely. Ports `2181-2183` will be exposed. > Please be aware that setting up multiple servers on a single machine will not create any redundancy. If something were to happen which caused the machine to die, all of the zookeeper servers would be offline. Full redundancy requires that each server have its own machine. It must be a completely separate physical server. Multiple virtual machines on the same physical host are still vulnerable to the complete failure of that host. diff --git a/zookeeper/metadata.json b/zookeeper/metadata.json new file mode 100644 index 000000000000..3d3937b21fb1 --- /dev/null +++ b/zookeeper/metadata.json @@ -0,0 +1,7 @@ +{ + "hub": { + "categories": [ + "databases-and-storage" + ] + } +}