האם תמונת ה-Docker discourse/discourse נחשבת בטוחה ומוכנה לייצור?

Hi Discourse team,

We’re currently evaluating the Docker image available here: https://hub.docker.com/r/discourse/discourse

This image was published very recently (less than 24h ago at the time of writing), and I couldn’t find references to it in the official documentation.

My question is:

  • Is this Docker image officially maintained and supported by the Discourse team for production use?
  • Or is it an experimental image that might be removed or changed unexpectedly?

We want to confirm whether it’s safe to rely on this image in our production environments.

Thanks

2 לייקים

I believe the Docker image is https://hub.docker.com/r/discourse/base. (5M+ downloads vs 800+) See:

The Docker repository will always contain the latest built version at: https://hub.docker.com/r/discourse/base/, you should not need to build the base image.

2 לייקים

תודה על תשובתך, אני יודע זאת. אבל לא הצלחתי להריץ בקלות את תמונת discourse/base עם Docker Compose. תמונת discourse/discourse החדשה הזו הופכת את ההגדרה להרבה יותר פשוטה ועובדת מצוין, אבל אני רוצה להבין את מטרתה והאם אני יכול להשתמש בה בייצור.

לייק 1

Take a read of:

לייק 1

discourse/discourse חדש, אך עדיין ניסיוני, לכן איני ממליץ להשתמש בו בסביבת ייצור. אנו בהחלט נפרסם מידע נוסף אם/כאשר זה ישתנה.

נכון לעכשיו, השיטה היחידה שאנו יכולים לתמוך בה היא ההתקנה הסטנדרטית.

11 לייקים

כפי שתואר, הדרך הנתמכת לאירוח עצמי היא לעקוב אחר ההתקנה הסטנדרטית. אם אינך רוצה לעשות זאת, אז אתה די לבד. אם אתה רוצה להפעיל עם docker-compose, מה שאני ממליץ הוא להשתמש ב-launcher כדי לבנות את התמונה שלך, לדחוף אותה למאגר משלך ואז להשתמש ב-‘./launcher start-cmd web_only’ כדי לקבל את משתני הסביבה הדרושים וכו’ כדי להפעיל אותה. ועדיין תצטרך לעשות משהו כדי לראות שהמסד נתונים עבר הגירה, הנכסים קומפלו מראש, וכן הלאה.

אתה יכול גם להמציא דרך לגרום ל-github לבנות תמונות עבורך ושיעברו הגירה וכן הלאה בעת ההפעלה (כפי שיום אחד יסופק על ידי CDCK, כך נראה). עשיתי זאת עבור לקוחות בעבר. (אשמח לעזור אם יש לך תקציב.)

אם אתה אוהב לחיות על הקצה, אתה כנראה די בטוח להשתמש בגרסת ה-“experimental” עם הסייג שתצטרך אתר staging שבו אתה בודק כל פריסה חדשה לפני שתדחוף אותה לייצור ותהיה מוכן או שתצטרך לחכות זמן מה ו/או לעשות משהו הדורש ידע מעמיק של discourse כדי להתקדם. המקרה הגרוע ביותר (כנראה) הוא שתצטרך להיות מוכן לבצע גיבוי ולשחזר להתקנה סטנדרטית עד שהדבר הניסיוני יהיה מוכן לשימוש רגיל.

לייק 1

Do you have an estimated release date or timeline for when discourse/discourse might be considered stable/production-ready?

Additionally, I would like to confirm: Is the discourse/discourse Docker image open source, and if so, could you provide the GitHub repository link?

3 לייקים

I don’t have any timeline/guarantees right now. But hopefully we’ll have more info to share in the next few weeks.

Yes it’s all open source. It’s built & published regularly by this github actions workflow: discourse_docker/.github/workflows/push-web-only.yml at main · discourse/discourse_docker · GitHub

7 לייקים

תודה על המידע ועל שיתוף הקישור ל-GitHub, מוערך מאוד!

3 לייקים

Yeah, it’s becoming an open secret of what’s in the oven :slight_smile:

You can get a technical preview of what’s upcoming, but like David said we can’t support it officially yet. There are tons of docs to plan, edge cases to test, etc… so we can’t recommend it for production until we smooth those things out.

8 לייקים

@david / @featheredtoast, you guys and the rest of the team have done a great job here.

I just switched to discourse/discourse from bitnami/discourse for automated testing and it’s working great. Obviously my use case is perfect - spin up a new forum, run tests, delete.

So, just wanted to give a big thanks. I’m sure a lot of others will benefit from this too especially once it becomes stable / official / supported.

6 לייקים

Similar situation, was looking for a quick way to spin up Discourse in a Docker Compose setup to make it easier for developers to build an SSO integration. This appears to work a treat (setup below for those who are interested):

docker-compose.yml
volumes:
  redis_data: {}
  discourse_data: {}
  discourse_postgres: {}
  discourse_postgres_data: {}

services:
  mailpit:
    image: docker.io/axllent/mailpit:latest
    container_name: mailpit
    ports:
      - '8025:8025'

  redis:
    image: redis:7-alpine
    container_name: redis
    volumes:
      - redis_data:/data
    ports:
      - '6379:6379'
    command: redis-server --appendonly yes

  discourse_db:
    image: discourse/postgres
    container_name: discourse_db
    volumes:
      - discourse_postgres:/var/lib/postgresql
      - discourse_postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB: discourse
      - POSTGRES_USER: admin
      - POSTGRES_PASSWORD: admin_password
      - DB_USER: discourse_user
      - DB_PASSWORD: discourse_user_password

  discourse:
    image: discourse/discourse:3.5.1
    container_name: discourse
    depends_on:
      - discourse_db
      - redis
      - mailpit
    ports:
      - '80:80'
    volumes:
      - discourse_data:/shared
    environment:
      - DISCOURSE_HOSTNAME: localhost
      - DISCOURSE_DEVELOPER_EMAILS: admin@example.com
      - DISCOURSE_DB_HOST: discourse_db
      - DISCOURSE_DB_PORT: 5432
      - DISCOURSE_DB_NAME: discourse
      - DISCOURSE_DB_USERNAME: discourse_user
      - DISCOURSE_DB_PASSWORD: discourse_user_password
      - DISCOURSE_REDIS_HOST: redis
      - DISCOURSE_REDIS_PORT: 6379
      - DISCOURSE_SMTP_ADDRESS: mailpit
      - DISCOURSE_SMTP_PORT: 1025
      - DISCOURSE_SMTP_ENABLE_START_TLS: false
      - DISCOURSE_SMTP_AUTHENTICATION: none
      - LANG: en_US.UTF-8

Looking forward to hearing about future plans or timelines, would love to be able to run this in something like Digital Ocean App Platform (something that clients could manage with less technical know-how).

3 לייקים

Ah thanks for sharing, @JackNZ . I didn’t even notice the discourse/postgres image :sweat_smile: I’ll have to fix that. Nevertheless, I’ll share where I’m at too. Maybe more interesting is the start.sh script here that, while in need of some cleanup, will create an admin user, API key, and disable rate limiters.

2 לייקים