diff --git a/bitnami/java/17-prod/debian-10/Dockerfile b/bitnami/java/17-prod/debian-10/Dockerfile new file mode 100644 index 000000000000..b843e8b4bd0f --- /dev/null +++ b/bitnami/java/17-prod/debian-10/Dockerfile @@ -0,0 +1,33 @@ +FROM docker.io/bitnami/minideb:buster +LABEL maintainer "Bitnami " + +ENV OS_ARCH="amd64" \ + OS_FLAVOUR="debian-10" \ + OS_NAME="linux" + +COPY prebuildfs / +# Install required system packages and dependencies +RUN install_packages ca-certificates curl gzip libc6 locales procps tar wget zlib1g +RUN wget -nc -P /tmp/bitnami/pkg/cache/ https://downloads.bitnami.com/files/stacksmith/java-17.0.0-0-linux-amd64-debian-10.tar.gz && \ + echo "f5eba40e70c6bc02d12cbaf8114f838079c3594f0e4e4e1836f4a3b3fbb02ee6 /tmp/bitnami/pkg/cache/java-17.0.0-0-linux-amd64-debian-10.tar.gz" | sha256sum -c - && \ + tar -zxf /tmp/bitnami/pkg/cache/java-17.0.0-0-linux-amd64-debian-10.tar.gz -P --transform 's|^[^/]*/files|/opt/bitnami|' --wildcards '*/files' && \ + rm -rf /tmp/bitnami/pkg/cache/java-17.0.0-0-linux-amd64-debian-10.tar.gz +RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8 +RUN update-locale LANG=C.UTF-8 LC_MESSAGES=POSIX && \ + DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales +RUN echo 'en_GB.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen +RUN echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen +RUN sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/' /etc/login.defs && \ + sed -i 's/^PASS_MIN_DAYS.*/PASS_MIN_DAYS 0/' /etc/login.defs && \ + sed -i 's/sha512/sha512 minlen=8/' /etc/pam.d/common-password + +COPY rootfs / +RUN /opt/bitnami/scripts/locales/add-extra-locales.sh +ENV BITNAMI_APP_NAME="java" \ + BITNAMI_IMAGE_VERSION="17.0.0-prod-debian-10-r0" \ + JAVA_HOME="/opt/bitnami/java" \ + LANG="en_US.UTF-8" \ + LANGUAGE="en_US:en" \ + PATH="/opt/bitnami/java/bin:$PATH" + +CMD [ "bash" ] diff --git a/bitnami/java/17-prod/debian-10/docker-compose.yml b/bitnami/java/17-prod/debian-10/docker-compose.yml new file mode 100644 index 000000000000..4ef2e9009244 --- /dev/null +++ b/bitnami/java/17-prod/debian-10/docker-compose.yml @@ -0,0 +1,11 @@ +version: '2' + +services: + java: + tty: true # Enables debugging capabilities when attached to this container. + image: docker.io/bitnami/java:17-prod + command: ["tail", "-f", "/dev/null"] # To keep the container running + ports: + - 8080:8080 + volumes: + - .:/app diff --git a/bitnami/java/17-prod/debian-10/prebuildfs/opt/bitnami/.bitnami_components.json b/bitnami/java/17-prod/debian-10/prebuildfs/opt/bitnami/.bitnami_components.json new file mode 100644 index 000000000000..5d7f3bb68a76 --- /dev/null +++ b/bitnami/java/17-prod/debian-10/prebuildfs/opt/bitnami/.bitnami_components.json @@ -0,0 +1,9 @@ +{ + "java": { + "arch": "amd64", + "digest": "f5eba40e70c6bc02d12cbaf8114f838079c3594f0e4e4e1836f4a3b3fbb02ee6", + "distro": "debian-10", + "type": "NAMI", + "version": "17.0.0-0" + } +} \ No newline at end of file diff --git a/bitnami/java/17-prod/debian-10/prebuildfs/opt/bitnami/licenses/licenses.txt b/bitnami/java/17-prod/debian-10/prebuildfs/opt/bitnami/licenses/licenses.txt new file mode 100644 index 000000000000..c76ba31f3b8a --- /dev/null +++ b/bitnami/java/17-prod/debian-10/prebuildfs/opt/bitnami/licenses/licenses.txt @@ -0,0 +1,3 @@ +Bitnami containers ship with software bundles. You can find the licenses under: +/opt/bitnami/nami/COPYING +/opt/bitnami/[name-of-bundle]/licenses/[bundle-version].txt diff --git a/bitnami/java/17-prod/debian-10/prebuildfs/usr/sbin/install_packages b/bitnami/java/17-prod/debian-10/prebuildfs/usr/sbin/install_packages new file mode 100755 index 000000000000..c9577647443b --- /dev/null +++ b/bitnami/java/17-prod/debian-10/prebuildfs/usr/sbin/install_packages @@ -0,0 +1,24 @@ +#!/bin/sh +set -e +set -u +export DEBIAN_FRONTEND=noninteractive +n=0 +max=2 +until [ $n -gt $max ]; do + set +e + ( + apt-get update -qq && + apt-get install -y --no-install-recommends "$@" + ) + CODE=$? + set -e + if [ $CODE -eq 0 ]; then + break + fi + if [ $n -eq $max ]; then + exit $CODE + fi + echo "apt failed, retrying" + n=$(($n + 1)) +done +rm -r /var/lib/apt/lists /var/cache/apt/archives diff --git a/bitnami/java/17-prod/debian-10/rootfs/opt/bitnami/scripts/locales/add-extra-locales.sh b/bitnami/java/17-prod/debian-10/rootfs/opt/bitnami/scripts/locales/add-extra-locales.sh new file mode 100755 index 000000000000..de3120bd8ec0 --- /dev/null +++ b/bitnami/java/17-prod/debian-10/rootfs/opt/bitnami/scripts/locales/add-extra-locales.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +# set -o xtrace # Uncomment this line for debugging purpose + +# Defaults +WITH_ALL_LOCALES="${WITH_ALL_LOCALES:-no}" +EXTRA_LOCALES="${EXTRA_LOCALES:-}" + +# Constants +LOCALES_FILE="/etc/locale.gen" +SUPPORTED_LOCALES_FILE="/usr/share/i18n/SUPPORTED" + +# Helper function for enabling locale only when it was not added before +enable_locale() { + local -r locale="${1:?missing locale}" + if ! grep -q -E "^${locale}$" "$SUPPORTED_LOCALES_FILE"; then + echo "Locale ${locale} is not supported in this system" + return 1 + fi + if ! grep -q -E "^${locale}" "$LOCALES_FILE"; then + echo "$locale" >> "$LOCALES_FILE" + else + echo "Locale ${locale} is already enabled" + fi +} + +if [[ "$WITH_ALL_LOCALES" =~ ^(yes|true|1)$ ]]; then + echo "Enabling all locales" + cp "$SUPPORTED_LOCALES_FILE" "$LOCALES_FILE" +else + # shellcheck disable=SC2001 + LOCALES_TO_ADD="$(sed 's/[,;]\s*/\n/g' <<< "$EXTRA_LOCALES")" + while [[ -n "$LOCALES_TO_ADD" ]] && read -r locale; do + echo "Enabling locale ${locale}" + enable_locale "$locale" + done <<< "$LOCALES_TO_ADD" +fi + +locale-gen diff --git a/bitnami/java/README.md b/bitnami/java/README.md index 29289103fb77..4fa11fb024ce 100644 --- a/bitnami/java/README.md +++ b/bitnami/java/README.md @@ -30,7 +30,7 @@ $ docker-compose up -d Learn more about the Bitnami tagging policy and the difference between rolling tags and immutable tags [in our documentation page](https://docs.bitnami.com/tutorials/understand-rolling-tags-containers/). -- [`17-prod`, `17.0.0-prod-debian-10-r-1` (17-prod/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/17.0.0-prod-debian-10-r-1/17-prod/debian-10/Dockerfile), [`17-prod-prod`, `17.0.0-prod-debian-10-r-1-prod` (17-prod/debian-10/prod/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/17.0.0-prod-debian-10-r-1/17-prod/debian-10/prod/Dockerfile) +- [`17-prod`, `17.0.0-prod-debian-10-r0` (17-prod/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/17.0.0-prod-debian-10-r0/17-prod/debian-10/Dockerfile), [`17-prod-prod`, `17.0.0-prod-debian-10-r0-prod` (17-prod/debian-10/prod/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/17.0.0-prod-debian-10-r0/17-prod/debian-10/prod/Dockerfile) - [`17`, `17.0.0-debian-10-r0` (17/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/17.0.0-debian-10-r0/17/debian-10/Dockerfile), [`17-prod`, `17.0.0-debian-10-r0-prod` (17/debian-10/prod/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/17.0.0-debian-10-r0/17/debian-10/prod/Dockerfile) - [`16-prod`, `16.0.2-prod-debian-10-r72` (16-prod/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/16.0.2-prod-debian-10-r72/16-prod/debian-10/Dockerfile), [`16-prod-prod`, `16.0.2-prod-debian-10-r72-prod` (16-prod/debian-10/prod/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/16.0.2-prod-debian-10-r72/16-prod/debian-10/prod/Dockerfile) - [`16`, `16.0.2-debian-10-r72` (16/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/16.0.2-debian-10-r72/16/debian-10/Dockerfile), [`16-prod`, `16.0.2-debian-10-r72-prod` (16/debian-10/prod/Dockerfile)](https://github.com/bitnami/bitnami-docker-java/blob/16.0.2-debian-10-r72/16/debian-10/prod/Dockerfile)