diff --git a/bitnami/grafana/10/debian-12/Dockerfile b/bitnami/grafana/10/debian-12/Dockerfile index 0030c7a96174..00248ff3fa4d 100644 --- a/bitnami/grafana/10/debian-12/Dockerfile +++ b/bitnami/grafana/10/debian-12/Dockerfile @@ -7,10 +7,10 @@ ARG TARGETARCH LABEL com.vmware.cp.artifact.flavor="sha256:c50c90cfd9d12b445b011e6ad529f1ad3daea45c26d20b00732fae3cd71f6a83" \ org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \ - org.opencontainers.image.created="2024-02-21T11:29:20Z" \ + org.opencontainers.image.created="2024-02-29T08:50:16Z" \ org.opencontainers.image.description="Application packaged by VMware, Inc" \ org.opencontainers.image.licenses="Apache-2.0" \ - org.opencontainers.image.ref.name="10.3.3-debian-12-r3" \ + org.opencontainers.image.ref.name="10.3.3-debian-12-r4" \ org.opencontainers.image.title="grafana" \ org.opencontainers.image.vendor="VMware, Inc." \ org.opencontainers.image.version="10.3.3" diff --git a/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana-env.sh b/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana-env.sh index fcd8fb190d57..505990a3f6e2 100644 --- a/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana-env.sh +++ b/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana-env.sh @@ -26,6 +26,7 @@ export BITNAMI_DEBUG="${BITNAMI_DEBUG:-false}" grafana_env_vars=( GRAFANA_TMP_DIR GRAFANA_PID_FILE + GRAFANA_DEFAULT_CONF_DIR GRAFANA_DEFAULT_PLUGINS_DIR GF_PATHS_HOME GF_PATHS_CONFIG @@ -58,8 +59,10 @@ unset grafana_env_vars export GRAFANA_BASE_DIR="${BITNAMI_ROOT_DIR}/grafana" export GRAFANA_BIN_DIR="${GRAFANA_BASE_DIR}/bin" export GRAFANA_TMP_DIR="${GRAFANA_TMP_DIR:-${GRAFANA_BASE_DIR}/tmp}" +export GRAFANA_CONF_DIR="${GRAFANA_BASE_DIR}/conf" export GRAFANA_PID_FILE="${GRAFANA_PID_FILE:-${GRAFANA_TMP_DIR}/grafana.pid}" export PATH="${GRAFANA_BIN_DIR}:${BITNAMI_ROOT_DIR}/common/bin:${PATH}" +export GRAFANA_DEFAULT_CONF_DIR="${GRAFANA_DEFAULT_CONF_DIR:-${GRAFANA_BASE_DIR}/conf.default}" export GRAFANA_DEFAULT_PLUGINS_DIR="${GRAFANA_DEFAULT_PLUGINS_DIR:-${GRAFANA_BASE_DIR}/default-plugins}" # System users (when running with a privileged user) diff --git a/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana/entrypoint.sh b/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana/entrypoint.sh index 0a5430b3acb9..a2e0bc123c94 100755 --- a/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana/entrypoint.sh +++ b/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana/entrypoint.sh @@ -28,6 +28,12 @@ function is_exec() { 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/postgresql/conf) +debug "Copying files from $GRAFANA_DEFAULT_CONF_DIR to $GRAFANA_CONF_DIR" +cp -nr "$GRAFANA_DEFAULT_CONF_DIR"/. "$GRAFANA_CONF_DIR" + if [[ "$1" = "/opt/bitnami/scripts/grafana/run.sh" ]] || ! is_exec "$1"; then # This catches the error-code from libgrafana.sh for the immediate exit when the grafana-operator is used. And ensure that the exit code is kept silently. /opt/bitnami/scripts/grafana/setup.sh || GRAFANA_OPERATOR_IMMEDIATE_EXIT=$? diff --git a/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana/postunpack.sh b/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana/postunpack.sh index 7493c7cf36c7..c5b14ee0324d 100755 --- a/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana/postunpack.sh +++ b/bitnami/grafana/10/debian-12/rootfs/opt/bitnami/scripts/grafana/postunpack.sh @@ -25,7 +25,7 @@ info "Creating system user" ensure_user_exists "$GRAFANA_DAEMON_USER" --group "$GRAFANA_DAEMON_GROUP" --system info "Configuring file permissions" -for dir in "$(grafana_env_var_value PATHS_DATA)" "$(grafana_env_var_value PATHS_LOGS)" "$(grafana_env_var_value PATHS_PLUGINS)" "$(grafana_env_var_value PATHS_PROVISIONING)" "$(grafana_env_var_value VOLUME_DIR)"; do +for dir in "$(grafana_env_var_value PATHS_DATA)" "$(grafana_env_var_value PATHS_LOGS)" "$(grafana_env_var_value PATHS_PLUGINS)" "$(grafana_env_var_value PATHS_PROVISIONING)" "$(grafana_env_var_value VOLUME_DIR)" "${GRAFANA_DEFAULT_CONF_DIR}"; do ensure_dir_exists "$dir" # Use grafana:root ownership for compatibility when running as a non-root user configure_permissions_ownership "$dir" -d "775" -f "664" -u "$GRAFANA_DAEMON_USER" -g "root" @@ -72,3 +72,7 @@ done # during the 1st boot of the container ensure_dir_exists "$GRAFANA_DEFAULT_PLUGINS_DIR" mv "$(grafana_env_var_value PATHS_PLUGINS)"/* "$GRAFANA_DEFAULT_PLUGINS_DIR" + +# Copy all initially generated configuration files to the default directory +# (this is to avoid breaking when entrypoint is being overridden) +cp -r "$GRAFANA_CONF_DIR"/* "$GRAFANA_DEFAULT_CONF_DIR" diff --git a/bitnami/grafana/README.md b/bitnami/grafana/README.md index f1870303d1c8..08817c84a3f5 100644 --- a/bitnami/grafana/README.md +++ b/bitnami/grafana/README.md @@ -100,7 +100,8 @@ We can launch another containers using the same flag (`--network NETWORK`) in th |-------------------------------|--------------------------------------------------------------------------------------|-----------------------------------------| | `GRAFANA_TMP_DIR` | Grafana directory for temporary runtime files. | `${GRAFANA_BASE_DIR}/tmp` | | `GRAFANA_PID_FILE` | Grafana PID file. | `${GRAFANA_TMP_DIR}/grafana.pid` | -| `GRAFANA_DEFAULT_PLUGINS_DIR` | Grafana directory for default plugins. | `${GRAFANA_BASE_DIR}/default-plugins` | +| `GRAFANA_DEFAULT_CONF_DIR` | Grafana directory for default plugins. | `${GRAFANA_BASE_DIR}/conf.default` | +| `GRAFANA_DEFAULT_PLUGINS_DIR` | Grafana directory for default configuration files. | `${GRAFANA_BASE_DIR}/default-plugins` | | `GF_PATHS_HOME` | Grafana home directory. | `$GRAFANA_BASE_DIR` | | `GF_PATHS_CONFIG` | Grafana configuration file. | `${GRAFANA_BASE_DIR}/conf/grafana.ini` | | `GF_PATHS_DATA` | Grafana directory for data files. | `${GRAFANA_BASE_DIR}/data` | @@ -118,6 +119,7 @@ We can launch another containers using the same flag (`--network NETWORK`) in th |----------------------------|-------------------------------------------------------------|---------------------------------| | `GRAFANA_BASE_DIR` | Grafana installation directory. | `${BITNAMI_ROOT_DIR}/grafana` | | `GRAFANA_BIN_DIR` | Grafana directory for binary executables. | `${GRAFANA_BASE_DIR}/bin` | +| `GRAFANA_CONF_DIR` | Grafana directory for configuration. | `${GRAFANA_BASE_DIR}/conf` | | `GRAFANA_DAEMON_USER` | Grafana system user. | `grafana` | | `GRAFANA_DAEMON_GROUP` | Grafana system group. | `grafana` | | `GF_VOLUME_DIR` | Grafana volume directory. | `${BITNAMI_VOLUME_DIR}/grafana` |