您好,Discourse团队:
我们目前正在评估此处提供的Docker镜像:https://hub.docker.com/r/discourse/discourse
该镜像发布时间很短(撰写本文时不到24小时),我在官方文档中找不到相关信息。
我的问题是:
- 这个Docker镜像是否由Discourse团队官方维护和支持,可用于生产环境?
- 还是一个实验性镜像,可能会被意外移除或更改?
我们想确认在生产环境中使用此镜像是否安全。
谢谢
您好,Discourse团队:
我们目前正在评估此处提供的Docker镜像:https://hub.docker.com/r/discourse/discourse
该镜像发布时间很短(撰写本文时不到24小时),我在官方文档中找不到相关信息。
我的问题是:
我们想确认在生产环境中使用此镜像是否安全。
谢谢
我认为 Docker 镜像为 https://hub.docker.com/r/discourse/base/。 (下载量 500 万+ 对比 800+) 见:
Docker 仓库将始终包含最新构建的版本:https://hub.docker.com/r/discourse/base/,您无需构建基础镜像。
感谢您的回复,我知道。但我无法轻松地使用 Docker Compose 运行 discourse/base 镜像。这个新的 discourse/discourse 镜像使设置更加简单,并且运行良好,但我想了解它的用途以及是否可以在生产环境中使用它。
请阅读:
discourse/discourse 是新的,但仍处于实验阶段,因此我不建议在生产环境中使用它。如果情况发生变化,我们一定会发布更多信息。
目前,我们唯一支持的方法是标准安装。
如前所述,支持的自托管方式是遵循标准安装。如果您不想这样做,那么您基本上是自生自灭。如果您想使用 docker-compose 启动,我建议使用 launcher 来构建您的映像,将其推送到您自己的存储库,然后使用 ./launcher start-cmd web_only 来获取启动它所需的 ENV 变量等。您仍然需要做一些事情来确保数据库已迁移、资产已预编译等。
您还可以设法让 github 为您构建映像,并在启动时进行迁移等(这似乎是 CDCK 未来将提供的方式)。我过去曾为客户这样做过。(如果您有预算,我很乐意提供帮助。)
如果您喜欢冒险,使用“实验性”版本可能相当安全,但前提是您需要有一个暂存站点,在将每个新部署推送到生产环境之前进行测试,并准备好等待一段时间和/或做一些需要深入了解 discourse 才能继续进行的事情。最坏的情况(可能是)是,您需要准备好进行备份并恢复到标准安装,直到实验性版本准备好投入使用。
您是否有关于 discourse/discourse 何时可能被认为稳定/可用于生产环境的预计发布日期或时间表?
此外,我想确认一下:discourse/discourse Docker 镜像是否开源?如果是,您能否提供 GitHub 存储库链接?
我现在没有任何时间表/保证。但希望在接下来的几周内能有更多信息分享。
是的,所有内容都是开源的。它由这个 GitHub Actions 工作流定期构建和发布:discourse_docker/.github/workflows/push-web-only.yml at main · discourse/discourse_docker · GitHub
感谢提供信息和分享GitHub链接,非常感激!
是的,这已经不是什么秘密了 ![]()
你可以抢先体验即将推出的功能,但正如 David 所说,我们还不能正式支持它。还有大量的文档需要规划,以及各种边缘情况需要测试等等……所以,在我们把这些事情都理顺之前,我们不能推荐它用于生产环境。
@david / @featheredtoast,你们和团队的其他成员在这里做得非常出色。
我刚刚从 bitnami/discourse 切换到 discourse/discourse 来进行自动化测试,效果非常好。显然,我的用例非常完美——启动一个新的论坛,运行测试,然后删除。
所以,我只想表达衷心的感谢。我相信很多人也会从中受益,尤其是当它变得稳定/官方/受支持之后。
情况类似,我一直在寻找一种快速的方法来在 Docker Compose 设置中启动 Discourse,以便开发人员可以更轻松地构建 SSO 集成。这对他们来说似乎效果很好(如果您有兴趣,设置如下):
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
期待听到关于未来计划或时间表的反馈,希望能运行在类似 Digital Ocean App Platform 这样的环境中(客户可以更轻松地进行管理,技术要求较低)。
感谢分享,@JackNZ。我甚至都没注意到 discourse/postgres 镜像
我得去修复一下。不过,我也会分享我的进展。也许更有趣的是这里的 start.sh 脚本,虽然还需要一些清理工作,但它将创建一个管理员用户、API 密钥并禁用速率限制器。