diff --git a/bitnami/elasticsearch/8/debian-11/Dockerfile b/bitnami/elasticsearch/8/debian-11/Dockerfile index 946471f87790..0eab2ae4646d 100644 --- a/bitnami/elasticsearch/8/debian-11/Dockerfile +++ b/bitnami/elasticsearch/8/debian-11/Dockerfile @@ -9,10 +9,10 @@ ARG TARGETARCH LABEL com.vmware.cp.artifact.flavor="sha256:1e1b4657a77f0d47e9220f0c37b9bf7802581b93214fff7d1bd2364c8bf22e8e" \ org.opencontainers.image.base.name="docker.io/bitnami/minideb:bullseye" \ - org.opencontainers.image.created="2024-02-16T08:04:27Z" \ + org.opencontainers.image.created="2024-02-20T00:37:53Z" \ org.opencontainers.image.description="Application packaged by VMware, Inc" \ org.opencontainers.image.licenses="Apache-2.0" \ - org.opencontainers.image.ref.name="8.12.1-debian-11-r19" \ + org.opencontainers.image.ref.name="8.12.1-debian-11-r20" \ org.opencontainers.image.title="elasticsearch" \ org.opencontainers.image.vendor="VMware, Inc." \ org.opencontainers.image.version="8.12.1" @@ -30,8 +30,8 @@ RUN install_packages ca-certificates curl libasound2-dev libc6 libfreetype6 libf RUN mkdir -p /tmp/bitnami/pkg/cache/ ; cd /tmp/bitnami/pkg/cache/ ; \ COMPONENTS=( \ "yq-4.41.1-0-linux-${OS_ARCH}-debian-11" \ - "java-17.0.10-13-1-linux-${OS_ARCH}-debian-11" \ - "elasticsearch-8.12.1-0-linux-${OS_ARCH}-debian-11" \ + "java-17.0.10-13-2-linux-${OS_ARCH}-debian-11" \ + "elasticsearch-8.12.1-1-linux-${OS_ARCH}-debian-11" \ ) ; \ for COMPONENT in "${COMPONENTS[@]}"; do \ if [ ! -f "${COMPONENT}.tar.gz" ]; then \ diff --git a/bitnami/elasticsearch/8/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json b/bitnami/elasticsearch/8/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json index fb048ca03703..8fc9fff5f695 100644 --- a/bitnami/elasticsearch/8/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json +++ b/bitnami/elasticsearch/8/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json @@ -3,13 +3,13 @@ "arch": "amd64", "distro": "debian-11", "type": "NAMI", - "version": "8.12.1-0" + "version": "8.12.1-1" }, "java": { "arch": "amd64", "distro": "debian-11", "type": "NAMI", - "version": "17.0.10-13-1" + "version": "17.0.10-13-2" }, "yq": { "arch": "amd64", diff --git a/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch-env.sh b/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch-env.sh index 07d6f54ec130..425a7035a886 100644 --- a/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch-env.sh +++ b/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch-env.sh @@ -110,6 +110,8 @@ export ELASTICSEARCH_LOGS_DIR="${DB_BASE_DIR}/logs" export DB_LOGS_DIR="$ELASTICSEARCH_LOGS_DIR" export ELASTICSEARCH_PLUGINS_DIR="${DB_BASE_DIR}/plugins" export DB_PLUGINS_DIR="$ELASTICSEARCH_PLUGINS_DIR" +export ELASTICSEARCH_DEFAULT_PLUGINS_DIR="${DB_BASE_DIR}/plugins.default" +export DB_DEFAULT_PLUGINS_DIR="$ELASTICSEARCH_DEFAULT_PLUGINS_DIR" export ELASTICSEARCH_DATA_DIR="${DB_VOLUME_DIR}/data" export DB_DATA_DIR="$ELASTICSEARCH_DATA_DIR" export ELASTICSEARCH_DATA_DIR_LIST="${ELASTICSEARCH_DATA_DIR_LIST:-}" diff --git a/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch/entrypoint.sh b/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch/entrypoint.sh index de23359666e1..0261f5a3c97d 100755 --- a/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch/entrypoint.sh +++ b/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch/entrypoint.sh @@ -18,6 +18,25 @@ set -o pipefail print_welcome_page +# We add the copy from default config in the entrypoint to not break users +# bypassing the setup.sh logic. If the file already exists do not overwrite (in +# case someone mounts a configuration file in /opt/bitnami/elasticsearch/conf) +debug "Copying files from $DB_DEFAULT_CONF_DIR to $DB_CONF_DIR" +cp -nr "$DB_DEFAULT_CONF_DIR"/. "$DB_CONF_DIR" + +if ! is_dir_empty "$DB_DEFAULT_PLUGINS_DIR"; then + debug "Copying plugins from $DB_DEFAULT_PLUGINS_DIR to $DB_PLUGINS_DIR" + # Copy the plugins installed by default to the plugins directory + # If there is already a plugin with the same name in the plugins folder do nothing + for plugin_path in "${DB_DEFAULT_PLUGINS_DIR}"/*; do + plugin_name="$(basename "$plugin_path")" + plugin_moved_path="${DB_PLUGINS_DIR}/${plugin_name}" + if ! [[ -d "$plugin_moved_path" ]]; then + cp -r "$plugin_path" "$plugin_moved_path" + fi + done +fi + if [[ "$1" = "/opt/bitnami/scripts/elasticsearch/run.sh" ]]; then info "** Starting Elasticsearch setup **" /opt/bitnami/scripts/elasticsearch/setup.sh diff --git a/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch/postunpack.sh b/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch/postunpack.sh index 9fbf3d00c888..f501810da7e2 100755 --- a/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch/postunpack.sh +++ b/bitnami/elasticsearch/8/debian-11/rootfs/opt/bitnami/scripts/elasticsearch/postunpack.sh @@ -33,3 +33,19 @@ for dir in "$DB_TMP_DIR" "$DB_DATA_DIR" "$DB_LOGS_DIR" "${DB_BASE_DIR}/plugins" done elasticsearch_install_plugins + +# Copy all initially generated configuration files to the default directory +# (this is to avoid breaking when entrypoint is being overridden) +cp -r "${DB_CONF_DIR}/"* "$DB_DEFAULT_CONF_DIR" + +if ! is_dir_empty "$DB_PLUGINS_DIR"; then + # Move all initially installed plugins to the default plugins directory. In + # order to not dramatically increase the container size we add symlinks in the + # plugins directory (to avoid breaking when the entrypoint is being overridden) + for plugin_path in "${DB_PLUGINS_DIR}"/*; do + plugin_name="$(basename "$plugin_path")" + plugin_moved_path="${DB_DEFAULT_PLUGINS_DIR}/${plugin_name}" + mv "$plugin_path" "$plugin_moved_path" + ln -s "$plugin_moved_path" "$plugin_path" + done +fi diff --git a/bitnami/elasticsearch/README.md b/bitnami/elasticsearch/README.md index 8989c9f8865d..31aad6181619 100644 --- a/bitnami/elasticsearch/README.md +++ b/bitnami/elasticsearch/README.md @@ -232,6 +232,7 @@ docker-compose up -d | `ELASTICSEARCH_CONF_DIR` | Elasticsearch configuration directory | `${DB_BASE_DIR}/config` | | `ELASTICSEARCH_LOGS_DIR` | Elasticsearch logs directory | `${DB_BASE_DIR}/logs` | | `ELASTICSEARCH_PLUGINS_DIR` | Elasticsearch plugins directory | `${DB_BASE_DIR}/plugins` | +| `ELASTICSEARCH_DEFAULT_PLUGINS_DIR` | Elasticsearch default plugins directory | `${DB_BASE_DIR}/plugins.default` | | `ELASTICSEARCH_DATA_DIR` | Elasticsearch data directory | `${DB_VOLUME_DIR}/data` | | `ELASTICSEARCH_TMP_DIR` | Elasticsearch temporary directory | `${DB_BASE_DIR}/tmp` | | `ELASTICSEARCH_BIN_DIR` | Elasticsearch executables directory | `${DB_BASE_DIR}/bin` |