mirror of
https://github.com/bitnami/containers.git
synced 2026-10-18 10:03:33 +02:00
[bitnami/neo4j] Release 2026.7.1-debian-12-r1 (#96597)
Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>
This commit is contained in:
@@ -8,7 +8,7 @@ ARG JAVA_EXTRA_SECURITY_DIR="/bitnami/java/extra-security"
|
||||
ARG TARGETARCH
|
||||
|
||||
LABEL org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \
|
||||
org.opencontainers.image.created="2026-08-07T20:00:43Z" \
|
||||
org.opencontainers.image.created="2026-08-18T16:08:33Z" \
|
||||
org.opencontainers.image.description="Application packaged by Broadcom, Inc." \
|
||||
org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/neo4j/README.md" \
|
||||
org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/neo4j" \
|
||||
@@ -52,7 +52,7 @@ RUN /opt/bitnami/scripts/java/postunpack.sh
|
||||
RUN /opt/bitnami/scripts/neo4j/postunpack.sh
|
||||
ENV APP_VERSION="2026.7.1" \
|
||||
BITNAMI_APP_NAME="neo4j" \
|
||||
IMAGE_REVISION="0" \
|
||||
IMAGE_REVISION="1" \
|
||||
JAVA_HOME="/opt/bitnami/java" \
|
||||
JAVA_OPTS="-Duser.home=/opt/bitnami/neo4j/.home" \
|
||||
PATH="/opt/bitnami/java/bin:/opt/bitnami/neo4j/bin:$PATH"
|
||||
|
||||
@@ -73,6 +73,19 @@ neo4j_validate() {
|
||||
|
||||
! is_empty_value "$NEO4J_HOST" && check_resolved_hostname "$NEO4J_HOST"
|
||||
|
||||
# Enterprise-only settings (clustering, metrics) are validated by neo4j_validate_enterprise,
|
||||
# defined only in libneo4j-enterprise.sh - a file that is only present in the neo4j-enterprise
|
||||
# image. Its mere absence is itself the "this is Community" signal (no packaging_info/edition
|
||||
# parsing needed), but still worth a clear error rather than a silent no-op if someone sets
|
||||
# one of these on an image that doesn't have the file.
|
||||
if declare -F neo4j_validate_enterprise >/dev/null; then
|
||||
neo4j_validate_enterprise
|
||||
else
|
||||
is_boolean_yes "${NEO4J_CLUSTERING_ENABLED:-false}" && print_validation_error "NEO4J_CLUSTERING_ENABLED is set to 'true' but this image does not support Causal Clustering (requires Neo4j Enterprise Edition)"
|
||||
is_boolean_yes "${NEO4J_METRICS_PROMETHEUS_ENABLED:-false}" && print_validation_error "NEO4J_METRICS_PROMETHEUS_ENABLED is set to 'true' but this image does not support Prometheus metrics (requires Neo4j Enterprise Edition)"
|
||||
is_boolean_yes "${NEO4J_BACKUP_ENABLED:-false}" && print_validation_error "NEO4J_BACKUP_ENABLED is set to 'true' but this image does not support online backup (requires Neo4j Enterprise Edition)"
|
||||
fi
|
||||
|
||||
[[ "$error_code" -eq 0 ]] || exit "$error_code"
|
||||
}
|
||||
|
||||
@@ -219,6 +232,13 @@ neo4j_initialize() {
|
||||
info "Configuring Neo4j with settings provided via environment variables"
|
||||
if ! [[ -f "${NEO4J_MOUNTED_CONF_DIR}/neo4j.conf" ]]; then
|
||||
configure_neo4j_connector_settings
|
||||
# Enterprise-only settings (clustering, metrics, backup): configure_neo4j_cluster_settings,
|
||||
# configure_neo4j_metrics_settings, and configure_neo4j_backup_settings are defined in
|
||||
# libneo4j-enterprise.sh, which is only present in the neo4j-enterprise image, so these
|
||||
# are no-ops on Community.
|
||||
declare -F configure_neo4j_cluster_settings >/dev/null && configure_neo4j_cluster_settings
|
||||
declare -F configure_neo4j_metrics_settings >/dev/null && configure_neo4j_metrics_settings
|
||||
declare -F configure_neo4j_backup_settings >/dev/null && configure_neo4j_backup_settings
|
||||
else
|
||||
info "Found mounted neo4j.conf file in ${NEO4J_MOUNTED_CONF_DIR}/neo4j.conf. The general Neo4j configuration will be skipped"
|
||||
fi
|
||||
|
||||
@@ -41,6 +41,22 @@ neo4j_env_vars=(
|
||||
NEO4J_HTTP_X_FORWARD_ENABLED
|
||||
NEO4J_HTTP_X_FORWARD_ALLOW_PROXIES
|
||||
NEO4J_HTTP_X_FORWARD_ALLOW_HOSTS
|
||||
NEO4J_CLUSTERING_ENABLED
|
||||
NEO4J_CLUSTER_DISCOVERY_TYPE
|
||||
NEO4J_CLUSTER_DISCOVERY_ENDPOINTS
|
||||
NEO4J_CLUSTER_MINIMUM_SIZE
|
||||
NEO4J_CLUSTER_DISCOVERY_LABEL_SELECTOR
|
||||
NEO4J_CLUSTER_DISCOVERY_SERVICE_PORT_NAME
|
||||
NEO4J_CLUSTER_DISCOVERY_PORT_NUMBER
|
||||
NEO4J_CLUSTER_TRANSACTION_PORT_NUMBER
|
||||
NEO4J_CLUSTER_RAFT_PORT_NUMBER
|
||||
NEO4J_CLUSTER_ROUTING_PORT_NUMBER
|
||||
NEO4J_CLUSTER_ADVERTISED_ADDRESS
|
||||
NEO4J_METRICS_PROMETHEUS_ENABLED
|
||||
NEO4J_METRICS_PROMETHEUS_PORT_NUMBER
|
||||
NEO4J_BACKUP_ENABLED
|
||||
NEO4J_BACKUP_PORT_NUMBER
|
||||
NEO4J_BACKUP_ADVERTISED_ADDRESS
|
||||
)
|
||||
for env_var in "${neo4j_env_vars[@]}"; do
|
||||
file_env_var="${env_var}_FILE"
|
||||
@@ -102,6 +118,28 @@ export NEO4J_HTTP_X_FORWARD_ENABLED="${NEO4J_HTTP_X_FORWARD_ENABLED:-false}"
|
||||
export NEO4J_HTTP_X_FORWARD_ALLOW_PROXIES="${NEO4J_HTTP_X_FORWARD_ALLOW_PROXIES:-}"
|
||||
export NEO4J_HTTP_X_FORWARD_ALLOW_HOSTS="${NEO4J_HTTP_X_FORWARD_ALLOW_HOSTS:-}"
|
||||
|
||||
# Neo4j clustering configuration (Enterprise Edition only)
|
||||
export NEO4J_CLUSTERING_ENABLED="${NEO4J_CLUSTERING_ENABLED:-false}"
|
||||
export NEO4J_CLUSTER_DISCOVERY_TYPE="${NEO4J_CLUSTER_DISCOVERY_TYPE:-}"
|
||||
export NEO4J_CLUSTER_DISCOVERY_ENDPOINTS="${NEO4J_CLUSTER_DISCOVERY_ENDPOINTS:-}"
|
||||
export NEO4J_CLUSTER_MINIMUM_SIZE="${NEO4J_CLUSTER_MINIMUM_SIZE:-3}"
|
||||
export NEO4J_CLUSTER_DISCOVERY_LABEL_SELECTOR="${NEO4J_CLUSTER_DISCOVERY_LABEL_SELECTOR:-}"
|
||||
export NEO4J_CLUSTER_DISCOVERY_SERVICE_PORT_NAME="${NEO4J_CLUSTER_DISCOVERY_SERVICE_PORT_NAME:-tcp-discovery}"
|
||||
export NEO4J_CLUSTER_DISCOVERY_PORT_NUMBER="${NEO4J_CLUSTER_DISCOVERY_PORT_NUMBER:-5000}"
|
||||
export NEO4J_CLUSTER_TRANSACTION_PORT_NUMBER="${NEO4J_CLUSTER_TRANSACTION_PORT_NUMBER:-6000}"
|
||||
export NEO4J_CLUSTER_RAFT_PORT_NUMBER="${NEO4J_CLUSTER_RAFT_PORT_NUMBER:-7000}"
|
||||
export NEO4J_CLUSTER_ROUTING_PORT_NUMBER="${NEO4J_CLUSTER_ROUTING_PORT_NUMBER:-7688}"
|
||||
export NEO4J_CLUSTER_ADVERTISED_ADDRESS="${NEO4J_CLUSTER_ADVERTISED_ADDRESS:-}"
|
||||
|
||||
# Neo4j metrics configuration
|
||||
export NEO4J_METRICS_PROMETHEUS_ENABLED="${NEO4J_METRICS_PROMETHEUS_ENABLED:-false}"
|
||||
export NEO4J_METRICS_PROMETHEUS_PORT_NUMBER="${NEO4J_METRICS_PROMETHEUS_PORT_NUMBER:-2004}"
|
||||
|
||||
# Neo4j backup configuration (Enterprise Edition only)
|
||||
export NEO4J_BACKUP_ENABLED="${NEO4J_BACKUP_ENABLED:-false}"
|
||||
export NEO4J_BACKUP_PORT_NUMBER="${NEO4J_BACKUP_PORT_NUMBER:-6362}"
|
||||
export NEO4J_BACKUP_ADVERTISED_ADDRESS="${NEO4J_BACKUP_ADVERTISED_ADDRESS:-}"
|
||||
|
||||
# Default JVM configuration
|
||||
export JAVA_HOME="${BITNAMI_ROOT_DIR}/java"
|
||||
|
||||
|
||||
@@ -14,6 +14,10 @@ set -o pipefail
|
||||
|
||||
# Load libraries
|
||||
. /opt/bitnami/scripts/libneo4j.sh
|
||||
# Enterprise-only extensions (clustering, metrics): only shipped in the neo4j-enterprise image
|
||||
if [[ -f /opt/bitnami/scripts/libneo4j-enterprise.sh ]]; then
|
||||
. /opt/bitnami/scripts/libneo4j-enterprise.sh
|
||||
fi
|
||||
|
||||
# Ensure Neo4j environment variables are valid
|
||||
neo4j_validate
|
||||
|
||||
+35
-19
@@ -72,25 +72,41 @@ The following tables list the main variables you can set.
|
||||
|
||||
#### Customizable environment variables
|
||||
|
||||
| Name | Description | Default Value |
|
||||
|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|
|
||||
| `NEO4J_HOST` | Hostname used to configure Neo4j advertised address. It can be either an IP or a domain. If left empty, it will be resolved to the machine IP | `nil` |
|
||||
| `NEO4J_BIND_ADDRESS` | Neo4j bind address | `0.0.0.0` |
|
||||
| `NEO4J_ALLOW_UPGRADE` | Allow automatic schema upgrades | `true` |
|
||||
| `NEO4J_PASSWORD` | Neo4j password. | `bitnami1` |
|
||||
| `NEO4J_APOC_IMPORT_FILE_ENABLED` | Allow importing files using the apoc library | `true` |
|
||||
| `NEO4J_APOC_IMPORT_FILE_USE_NEO4J_CONFIG` | Use neo4j configuration with the apoc library | `true` |
|
||||
| `NEO4J_BOLT_PORT_NUMBER` | Port used for the bolt protocol. | `7687` |
|
||||
| `NEO4J_HTTP_PORT_NUMBER` | Port used for the http protocol. | `7474` |
|
||||
| `NEO4J_HTTPS_PORT_NUMBER` | Port used for the https protocol. | `7473` |
|
||||
| `NEO4J_BOLT_ADVERTISED_PORT_NUMBER` | Advertised port for the bolt protocol. | `$NEO4J_BOLT_PORT_NUMBER` |
|
||||
| `NEO4J_HTTP_ADVERTISED_PORT_NUMBER` | Advertised port for the http protocol. | `$NEO4J_HTTP_PORT_NUMBER` |
|
||||
| `NEO4J_HTTPS_ADVERTISED_PORT_NUMBER` | Advertised port for the https protocol. | `$NEO4J_HTTPS_PORT_NUMBER` |
|
||||
| `NEO4J_HTTPS_ENABLED` | Enables the HTTPS connector. | `false` |
|
||||
| `NEO4J_BOLT_TLS_LEVEL` | The encryption level to be used to secure communications with Bolt connector. Allowed values: REQUIRED, OPTIONAL, DISABLED | `DISABLED` |
|
||||
| `NEO4J_HTTP_X_FORWARD_ENABLED` | Enable processing of X-Forwarded-Host and X-Forwarded-Proto headers. | `false` |
|
||||
| `NEO4J_HTTP_X_FORWARD_ALLOW_PROXIES` | Enable processing of X-Forwarded-Host and X-Forwarded-Proto headers. | `nil` |
|
||||
| `NEO4J_HTTP_X_FORWARD_ALLOW_HOSTS` | List of allowed hostnames that can appear in X-Forwarded-Host header. | `nil` |
|
||||
| Name | Description | Default Value |
|
||||
|---------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|
|
||||
| `NEO4J_HOST` | Hostname used to configure Neo4j advertised address. It can be either an IP or a domain. If left empty, it will be resolved to the machine IP | `nil` |
|
||||
| `NEO4J_BIND_ADDRESS` | Neo4j bind address | `0.0.0.0` |
|
||||
| `NEO4J_ALLOW_UPGRADE` | Allow automatic schema upgrades | `true` |
|
||||
| `NEO4J_PASSWORD` | Neo4j password. | `bitnami1` |
|
||||
| `NEO4J_APOC_IMPORT_FILE_ENABLED` | Allow importing files using the apoc library | `true` |
|
||||
| `NEO4J_APOC_IMPORT_FILE_USE_NEO4J_CONFIG` | Use neo4j configuration with the apoc library | `true` |
|
||||
| `NEO4J_BOLT_PORT_NUMBER` | Port used for the bolt protocol. | `7687` |
|
||||
| `NEO4J_HTTP_PORT_NUMBER` | Port used for the http protocol. | `7474` |
|
||||
| `NEO4J_HTTPS_PORT_NUMBER` | Port used for the https protocol. | `7473` |
|
||||
| `NEO4J_BOLT_ADVERTISED_PORT_NUMBER` | Advertised port for the bolt protocol. | `$NEO4J_BOLT_PORT_NUMBER` |
|
||||
| `NEO4J_HTTP_ADVERTISED_PORT_NUMBER` | Advertised port for the http protocol. | `$NEO4J_HTTP_PORT_NUMBER` |
|
||||
| `NEO4J_HTTPS_ADVERTISED_PORT_NUMBER` | Advertised port for the https protocol. | `$NEO4J_HTTPS_PORT_NUMBER` |
|
||||
| `NEO4J_HTTPS_ENABLED` | Enables the HTTPS connector. | `false` |
|
||||
| `NEO4J_BOLT_TLS_LEVEL` | The encryption level to be used to secure communications with Bolt connector. Allowed values: REQUIRED, OPTIONAL, DISABLED | `DISABLED` |
|
||||
| `NEO4J_HTTP_X_FORWARD_ENABLED` | Enable processing of X-Forwarded-Host and X-Forwarded-Proto headers. | `false` |
|
||||
| `NEO4J_HTTP_X_FORWARD_ALLOW_PROXIES` | Enable processing of X-Forwarded-Host and X-Forwarded-Proto headers. | `nil` |
|
||||
| `NEO4J_HTTP_X_FORWARD_ALLOW_HOSTS` | List of allowed hostnames that can appear in X-Forwarded-Host header. | `nil` |
|
||||
| `NEO4J_CLUSTERING_ENABLED` | Enable Neo4j Causal Clustering. Requires Neo4j Enterprise Edition. | `false` |
|
||||
| `NEO4J_CLUSTER_DISCOVERY_TYPE` | Cluster discovery mechanism (dbms.cluster.discovery.resolver_type), e.g. K8S, LIST, DNS, SRV. No default: depends entirely on where this container runs, so it must be set explicitly whenever clustering is enabled. | `nil` |
|
||||
| `NEO4J_CLUSTER_DISCOVERY_ENDPOINTS` | Comma-separated list of peer host:port discovery endpoints (dbms.cluster.endpoints), used with LIST/DNS-style discovery types, e.g. for a docker-compose deployment. Not used with NEO4J_CLUSTER_DISCOVERY_TYPE=K8S. | `nil` |
|
||||
| `NEO4J_CLUSTER_MINIMUM_SIZE` | Minimum number of core cluster members required to reach Raft quorum. | `3` |
|
||||
| `NEO4J_CLUSTER_DISCOVERY_LABEL_SELECTOR` | Kubernetes label selector used to discover peer cluster pods via the Kubernetes API. Only used with NEO4J_CLUSTER_DISCOVERY_TYPE=K8S. | `nil` |
|
||||
| `NEO4J_CLUSTER_DISCOVERY_SERVICE_PORT_NAME` | Name of the Kubernetes Service port that maps to the cluster discovery port. | `tcp-discovery` |
|
||||
| `NEO4J_CLUSTER_DISCOVERY_PORT_NUMBER` | Port used for cluster member discovery. | `5000` |
|
||||
| `NEO4J_CLUSTER_TRANSACTION_PORT_NUMBER` | Port used for cluster transaction-shipping. | `6000` |
|
||||
| `NEO4J_CLUSTER_RAFT_PORT_NUMBER` | Port used for cluster Raft consensus. | `7000` |
|
||||
| `NEO4J_CLUSTER_ROUTING_PORT_NUMBER` | Port used for cluster server-side routing. | `7688` |
|
||||
| `NEO4J_CLUSTER_ADVERTISED_ADDRESS` | Address this cluster member advertises to its peers. If left empty, it will be resolved to the machine IP. | `nil` |
|
||||
| `NEO4J_METRICS_PROMETHEUS_ENABLED` | Enable the native Prometheus metrics endpoint. | `false` |
|
||||
| `NEO4J_METRICS_PROMETHEUS_PORT_NUMBER` | Port used for the Prometheus metrics endpoint. | `2004` |
|
||||
| `NEO4J_BACKUP_ENABLED` | Enable the online backup service (neo4j-admin database backup). Requires Neo4j Enterprise Edition. | `false` |
|
||||
| `NEO4J_BACKUP_PORT_NUMBER` | Port used for the online backup service. | `6362` |
|
||||
| `NEO4J_BACKUP_ADVERTISED_ADDRESS` | Address this server advertises for the backup service. If left empty, it will be resolved to the machine IP. | `nil` |
|
||||
|
||||
#### Read-only environment variables
|
||||
|
||||
|
||||
Reference in New Issue
Block a user