diff --git a/bitnami/ghost/6/debian-12/Dockerfile b/bitnami/ghost/6/debian-12/Dockerfile index ef7d76677b3c..646d89711a52 100644 --- a/bitnami/ghost/6/debian-12/Dockerfile +++ b/bitnami/ghost/6/debian-12/Dockerfile @@ -7,7 +7,7 @@ ARG DOWNLOADS_URL="downloads.bitnami.com/files/stacksmith" ARG TARGETARCH LABEL org.opencontainers.image.base.name="docker.io/bitnami/minideb:bookworm" \ - org.opencontainers.image.created="2026-06-05T18:59:16Z" \ + org.opencontainers.image.created="2026-06-08T10:11:04Z" \ org.opencontainers.image.description="Application packaged by Broadcom, Inc." \ org.opencontainers.image.documentation="https://github.com/bitnami/containers/tree/main/bitnami/ghost/README.md" \ org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/ghost" \ @@ -53,7 +53,7 @@ RUN /opt/bitnami/scripts/ghost/postunpack.sh RUN /opt/bitnami/scripts/mysql-client/postunpack.sh ENV APP_VERSION="6.44.1" \ BITNAMI_APP_NAME="ghost" \ - IMAGE_REVISION="0" \ + IMAGE_REVISION="1" \ PATH="/opt/bitnami/common/bin:/opt/bitnami/python/bin:/opt/bitnami/node/bin:/opt/bitnami/mysql/bin:/opt/bitnami/ghost/bin:$PATH" EXPOSE 2368 3000 diff --git a/bitnami/ghost/6/debian-12/rootfs/opt/bitnami/scripts/ghost/postunpack.sh b/bitnami/ghost/6/debian-12/rootfs/opt/bitnami/scripts/ghost/postunpack.sh index 6eb0f52f9ecb..2ebae9f932b4 100755 --- a/bitnami/ghost/6/debian-12/rootfs/opt/bitnami/scripts/ghost/postunpack.sh +++ b/bitnami/ghost/6/debian-12/rootfs/opt/bitnami/scripts/ghost/postunpack.sh @@ -24,15 +24,12 @@ info "Configuring file permissions for Ghost" ensure_user_exists "$GHOST_DAEMON_USER" --group "$GHOST_DAEMON_GROUP" --system --home "/home/$GHOST_DAEMON_USER" declare -a writable_dirs=( - # Skipping GHOST_BASE_DIR intentionally because it contains a lot of files/folders that should not be writable - "$GHOST_VOLUME_DIR" # Folders to persist "${GHOST_BASE_DIR}/content" # Folders that need to be writable for the app to work "/.ghost" "${GHOST_BASE_DIR}/content/logs" ) - for dir in "${writable_dirs[@]}"; do ensure_dir_exists "$dir" # Use ghost:root ownership for compatibility when running as a non-root user @@ -41,5 +38,10 @@ for dir in "${writable_dirs[@]}"; do # is clearly a limitation in terms of security configure_permissions_ownership "$dir" -d "777" -f "666" -u "$GHOST_DAEMON_USER" -g "root" done +# Provide write permissions in volume directory +ensure_dir_exists "$GHOST_VOLUME_DIR" +configure_permissions_ownership "$GHOST_VOLUME_DIR" -d "775" -f "664" -u "$GHOST_DAEMON_USER" -g "root" # Provide write permissions in installation directory (without doing it recursively) -chmod a+rwX "$GHOST_BASE_DIR" "${GHOST_BASE_DIR}/.ghost-cli" && chown "${GHOST_DAEMON_USER}:root" "$GHOST_BASE_DIR" "${GHOST_BASE_DIR}/.ghost-cli" +for dir in "$GHOST_BASE_DIR" "${GHOST_BASE_DIR}/.ghost-cli"; do + chmod a+rwX "$dir" && chown "${GHOST_DAEMON_USER}:root" "$dir" +done diff --git a/bitnami/ghost/6/debian-12/rootfs/opt/bitnami/scripts/libghost.sh b/bitnami/ghost/6/debian-12/rootfs/opt/bitnami/scripts/libghost.sh index c4939c407062..50d3888ff017 100644 --- a/bitnami/ghost/6/debian-12/rootfs/opt/bitnami/scripts/libghost.sh +++ b/bitnami/ghost/6/debian-12/rootfs/opt/bitnami/scripts/libghost.sh @@ -327,17 +327,15 @@ ghost_initialize() { ghost_pass_wizard mv "$GHOST_LOG_FILE" "${GHOST_BASE_DIR}/content/logs/ghost.setup.log" # After passing the wizard, we can bind to 0.0.0.0 - if am_i_root; then - debug_execute run_as_user "$GHOST_DAEMON_USER" ghost setup "--ip" "0.0.0.0" - else - debug_execute ghost setup "--ip" "0.0.0.0" - fi + ghost_conf_set "server.host" "0.0.0.0" else info "An already initialized Ghost database was provided, configuration will be skipped" fi info "Persisting Ghost installation" persist_app "$app_name" "$GHOST_DATA_TO_PERSIST" + # After passing the wizard and persisting the app, we can restrict permissions on content directory + configure_permissions_ownership "${GHOST_VOLUME_DIR}/content" -d "775" -f "664" else info "Restoring persisted Ghost installation" restore_persisted_app "$app_name" "$GHOST_DATA_TO_PERSIST"