[PR #824] fix(discourse): replace dead bitnami images with working alternatives #7171

Open
opened 2026-05-18 19:17:53 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Dokploy/templates/pull/824
Author: @khalidmemon1
Created: 4/28/2026
Status: 🔄 Open

Base: canaryHead: canary


📝 Commits (2)

  • c5b68aa fix(discourse): replace dead bitnami images with working alternatives
  • c493b7e fix(discourse): fix Redis auth and volume path for official image

📊 Changes

2 files changed (+13 additions, -9 deletions)

View changed files

📝 blueprints/discourse/docker-compose.yml (+6 -8)
📝 blueprints/discourse/template.toml (+7 -1)

📄 Description

Problem

Bitnami deprecated free versioned images on Docker Hub in August 2025.
The following images no longer exist and cause deployment failures:

  • docker.io/bitnami/postgresql:17
  • docker.io/bitnami/redis:7.4
  • docker.io/bitnamilegacy/discourse:3.5.0

Changes

Service Old Image New Image
discourse-db docker.io/bitnami/postgresql:17 postgres:16-alpine
discourse-redis docker.io/bitnami/redis:7.4 redis:7-alpine
discourse-app docker.io/bitnamilegacy/discourse:3.5.0 bitnamilegacy/discourse:3.3.0
discourse-sidekiq docker.io/bitnamilegacy/discourse:3.5.0 bitnamilegacy/discourse:3.3.0

Tested

Verified working on a live Dokploy instance — all services start healthy, Discourse is accessible.

Greptile Summary

This PR replaces deprecated Bitnami Docker Hub images with working alternatives for the Discourse template. The Redis fix (using --requirepass command flag) correctly addresses a previously flagged issue. However, two previously-flagged P0/P1 issues remain unresolved:

  • postgres:16-alpine still uses Bitnami env var names (POSTGRESQL_USERNAME, POSTGRESQL_PASSWORD, POSTGRESQL_DATABASE) which are silently ignored by the official image; the database and user are never created, so Discourse will fail all DB connections at startup.
  • meta.json still shows version: \"3.5.0\" while docker-compose.yml now uses bitnamilegacy/discourse:3.3.0, violating the AGENTS.md requirement that the version field must match the Docker image version.

Confidence Score: 1/5

Not safe to merge — the postgres service will fail to initialise due to incompatible env var names, and the meta.json version is out of sync.

A pre-existing P0 (wrong env var names for postgres:16-alpine introduced by this PR's image swap) means Discourse is still broken on fresh deploy. The meta.json version mismatch is a P1 that will also cause CI validation to fail. Multiple unresolved critical issues keep the score at 1/5.

blueprints/discourse/docker-compose.yml (postgres env vars and volume path) and meta.json (version field out of sync with image tag)

Comments Outside Diff (3)

  1. blueprints/discourse/docker-compose.yml, line 4-17 (link)

    P0 Incompatible Bitnami env vars with official postgres image

    postgres:16-alpine is the official PostgreSQL image and does not recognise Bitnami-specific environment variable names. POSTGRESQL_USERNAME, POSTGRESQL_PASSWORD, and POSTGRESQL_DATABASE are silently ignored, so the bn_discourse user and bitnami_discourse database are never created. Discourse will then fail every connection attempt at startup.

    The official image uses POSTGRES_USER, POSTGRES_PASSWORD, and POSTGRES_DB. The volume mount path is also wrong: official postgres stores data at /var/lib/postgresql/data, not /bitnami/postgresql.

    Fix the env var names and the volume path:

      discourse-db:
        image: postgres:16-alpine
        volumes:
          - discourse-postgresql-data:/var/lib/postgresql/data
        environment:
          POSTGRES_USER: bn_discourse
          POSTGRES_DB: bitnami_discourse
          # POSTGRES_PASSWORD: keep as ${POSTGRES_PASSWORD}
    
  2. blueprints/discourse/docker-compose.yml, line 44-59 (link)

    P1 DISCOURSE_USERNAME / DISCOURSE_EMAIL / DISCOURSE_PASSWORD never reach the container

    template.toml defines and injects these three variables as global project env vars, but neither discourse-app nor discourse-sidekiq reference them inside their environment: block in docker-compose.yml. Docker Compose only forwards a variable to a container when it is explicitly listed under the service's environment: key. Without this, the bitnami Discourse image falls back to its built-in defaults and the configured admin credentials are silently discarded.

    Add the missing references to both service environment: sections:

    DISCOURSE_USERNAME: ${DISCOURSE_USERNAME}
    DISCOURSE_EMAIL: ${DISCOURSE_EMAIL}
    

    (and the equivalent for the admin credential variable)

  3. blueprints/discourse/template.toml, line 1-22 (link)

    P1 meta.json version still reflects old image (3.5.0)

    Per the project's AGENTS.md, the version field in meta.json must match the Docker image version in docker-compose.yml. The image has been downgraded from 3.5.0 to 3.3.0, but meta.json still shows "version": "3.5.0". This mismatch will cause CI validation to fail and is a required convention for the template registry.

    Context Used: AGENTS.md (source)

Reviews (2): Last reviewed commit: "fix(discourse): fix Redis auth and volum..." | Re-trigger Greptile

Context used:

  • Context used - AGENTS.md (source)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Dokploy/templates/pull/824 **Author:** [@khalidmemon1](https://github.com/khalidmemon1) **Created:** 4/28/2026 **Status:** 🔄 Open **Base:** `canary` ← **Head:** `canary` --- ### 📝 Commits (2) - [`c5b68aa`](https://github.com/Dokploy/templates/commit/c5b68aa634b8c3eec43856630bd900eff4bd6994) fix(discourse): replace dead bitnami images with working alternatives - [`c493b7e`](https://github.com/Dokploy/templates/commit/c493b7eee9f5bdef1a60bd8daf56f44f3f88a2e2) fix(discourse): fix Redis auth and volume path for official image ### 📊 Changes **2 files changed** (+13 additions, -9 deletions) <details> <summary>View changed files</summary> 📝 `blueprints/discourse/docker-compose.yml` (+6 -8) 📝 `blueprints/discourse/template.toml` (+7 -1) </details> ### 📄 Description ## Problem Bitnami deprecated free versioned images on Docker Hub in August 2025. The following images no longer exist and cause deployment failures: - `docker.io/bitnami/postgresql:17` - `docker.io/bitnami/redis:7.4` - `docker.io/bitnamilegacy/discourse:3.5.0` ## Changes | Service | Old Image | New Image | |---|---|---| | discourse-db | `docker.io/bitnami/postgresql:17` | `postgres:16-alpine` | | discourse-redis | `docker.io/bitnami/redis:7.4` | `redis:7-alpine` | | discourse-app | `docker.io/bitnamilegacy/discourse:3.5.0` | `bitnamilegacy/discourse:3.3.0` | | discourse-sidekiq | `docker.io/bitnamilegacy/discourse:3.5.0` | `bitnamilegacy/discourse:3.3.0` | ## Tested Verified working on a live Dokploy instance — all services start healthy, Discourse is accessible. <!-- greptile_comment --> <h3>Greptile Summary</h3> This PR replaces deprecated Bitnami Docker Hub images with working alternatives for the Discourse template. The Redis fix (using `--requirepass` command flag) correctly addresses a previously flagged issue. However, two previously-flagged P0/P1 issues remain unresolved: - **`postgres:16-alpine` still uses Bitnami env var names** (`POSTGRESQL_USERNAME`, `POSTGRESQL_PASSWORD`, `POSTGRESQL_DATABASE`) which are silently ignored by the official image; the database and user are never created, so Discourse will fail all DB connections at startup. - **`meta.json` still shows `version: \"3.5.0\"`** while `docker-compose.yml` now uses `bitnamilegacy/discourse:3.3.0`, violating the AGENTS.md requirement that the version field must match the Docker image version. <h3>Confidence Score: 1/5</h3> Not safe to merge — the postgres service will fail to initialise due to incompatible env var names, and the meta.json version is out of sync. A pre-existing P0 (wrong env var names for `postgres:16-alpine` introduced by this PR's image swap) means Discourse is still broken on fresh deploy. The meta.json version mismatch is a P1 that will also cause CI validation to fail. Multiple unresolved critical issues keep the score at 1/5. `blueprints/discourse/docker-compose.yml` (postgres env vars and volume path) and `meta.json` (version field out of sync with image tag) <!-- greptile_failed_comments --> <details><summary><h3>Comments Outside Diff (3)</h3></summary> 1. `blueprints/discourse/docker-compose.yml`, line 4-17 ([link](https://github.com/dokploy/templates/blob/c5b68aa634b8c3eec43856630bd900eff4bd6994/blueprints/discourse/docker-compose.yml#L4-L17)) <a href="#"><img alt="P0" src="https://greptile-static-assets.s3.amazonaws.com/badges/p0.svg?v=7" align="top"></a> **Incompatible Bitnami env vars with official postgres image** `postgres:16-alpine` is the official PostgreSQL image and does not recognise Bitnami-specific environment variable names. `POSTGRESQL_USERNAME`, `POSTGRESQL_PASSWORD`, and `POSTGRESQL_DATABASE` are silently ignored, so the `bn_discourse` user and `bitnami_discourse` database are never created. Discourse will then fail every connection attempt at startup. The official image uses `POSTGRES_USER`, `POSTGRES_PASSWORD`, and `POSTGRES_DB`. The volume mount path is also wrong: official postgres stores data at `/var/lib/postgresql/data`, not `/bitnami/postgresql`. Fix the env var names and the volume path: ```yaml discourse-db: image: postgres:16-alpine volumes: - discourse-postgresql-data:/var/lib/postgresql/data environment: POSTGRES_USER: bn_discourse POSTGRES_DB: bitnami_discourse # POSTGRES_PASSWORD: keep as ${POSTGRES_PASSWORD} ``` 2. `blueprints/discourse/docker-compose.yml`, line 44-59 ([link](https://github.com/dokploy/templates/blob/c5b68aa634b8c3eec43856630bd900eff4bd6994/blueprints/discourse/docker-compose.yml#L44-L59)) <a href="#"><img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=7" align="top"></a> **DISCOURSE_USERNAME / DISCOURSE_EMAIL / DISCOURSE_PASSWORD never reach the container** `template.toml` defines and injects these three variables as global project env vars, but neither `discourse-app` nor `discourse-sidekiq` reference them inside their `environment:` block in docker-compose.yml. Docker Compose only forwards a variable to a container when it is explicitly listed under the service's `environment:` key. Without this, the bitnami Discourse image falls back to its built-in defaults and the configured admin credentials are silently discarded. Add the missing references to both service `environment:` sections: ``` DISCOURSE_USERNAME: ${DISCOURSE_USERNAME} DISCOURSE_EMAIL: ${DISCOURSE_EMAIL} ``` (and the equivalent for the admin credential variable) 3. `blueprints/discourse/template.toml`, line 1-22 ([link](https://github.com/dokploy/templates/blob/c5b68aa634b8c3eec43856630bd900eff4bd6994/blueprints/discourse/template.toml#L1-L22)) <a href="#"><img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=7" align="top"></a> **meta.json version still reflects old image (3.5.0)** Per the project's AGENTS.md, the `version` field in `meta.json` **must** match the Docker image version in `docker-compose.yml`. The image has been downgraded from `3.5.0` to `3.3.0`, but `meta.json` still shows `"version": "3.5.0"`. This mismatch will cause CI validation to fail and is a required convention for the template registry. **Context Used:** AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=09330bde-2058-497c-9c64-ceae637fb5b2)) </details> <!-- /greptile_failed_comments --> <sub>Reviews (2): Last reviewed commit: ["fix(discourse): fix Redis auth and volum..."](https://github.com/dokploy/templates/commit/c493b7eee9f5bdef1a60bd8daf56f44f3f88a2e2) | [Re-trigger Greptile](https://app.greptile.com/api/retrigger?id=29983690)</sub> **Context used:** - Context used - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=09330bde-2058-497c-9c64-ceae637fb5b2)) <!-- /greptile_comment --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-18 19:17:53 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/templates#7171