返回

用Docker容器安装Discourse论坛的指南

电脑技巧

使用 Docker 安装和运行 Discourse 论坛:一个分步指南

简介

对于寻求建立在线社区的人来说,Discourse 是一个流行的开源论坛软件。它以其易用性、丰富的功能和可扩展性而闻名。借助 Docker,在您的服务器上安装和运行 Discourse 变 得轻而易举。在本指南中,我们将逐步介绍如何使用 Docker 容器设置和配置 Discourse 论坛。

先决条件

  • 安装并运行 Docker
  • 一个具有充足内存和 CPU 资源的服务器
  • 一个可用的域名

安装 Docker

如果您尚未安装 Docker,请访问其官方网站并按照说明进行操作。确保 Docker 正在运行,您可以通过运行以下命令来检查:

docker ps

克隆 Discourse 镜像

首先,克隆 Discourse 的官方 Docker 镜像:

docker pull discourse/discourse

创建数据库

接下来,为 Discourse 创建一个数据库卷:

docker volume create discourse_db_data

运行 Discourse 容器

现在,使用以下命令运行 Discourse 容器:

docker run -d --name=discourse \
  -v discourse_db_data:/var/discourse/db \
  -p 80:80 -p 443:443 \
  -e DISCOURSE_HOSTNAME=your-domain-name \
  discourse/discourse
  • --name=discourse 为容器指定一个名称。
  • -v discourse_db_data:/var/discourse/db 挂载先前创建的数据库卷。
  • -p 80:80 -p 443:443 将容器端口映射到主机端口 80(HTTP)和 443(HTTPS)。
  • -e DISCOURSE_HOSTNAME=your-domain-name 设置论坛的域名。

配置 Discourse

  1. 访问 http://your-domain-name 并按照安装向导完成安装过程。
  2. 选择一个数据库类型(MySQL、PostgreSQL 或 SQLite)。
  3. 创建一个管理员帐户并配置论坛设置。

启动 Discourse

安装完成后,运行以下命令启动 Discourse:

docker start discourse

您现在可以通过 http://your-domain-name 访问您的 Discourse 论坛。

反向代理和 SSL

如果您希望通过反向代理或 SSL 访问 Discourse,可以使用以下配置:

反向代理服务器

location / {
  proxy_pass http://127.0.0.1:80;
}

Discourse 容器

-e DISCOURSE_HOSTNAME=your-domain-name
-e DISCOURSE_PROTOCOL=https
-e DISCOURSE_DISCOURSE_DEVELOPER_EMAILS=your-email-address
-e DISCOURSE_SMTP_ADDRESS=your-smtp-server
-e DISCOURSE_SMTP_PORT=587
-e DISCOURSE_SMTP_USER_NAME=your-smtp-username
-e DISCOURSE_SMTP_PASSWORD=your-smtp-password

如果正确配置,您的 Discourse 论坛将通过反向代理和 SSL 可用。

常见问题解答

  • 无法访问 Discourse 论坛?

    • 检查防火墙设置以确保已启用端口 80 和 443。
    • 验证 Discourse 容器正在运行(docker ps)。
  • 无法登录到 Discourse 论坛?

    • 确认您的管理员帐户信息正确。
    • 确保数据库已正确配置并设置了密码。
  • Discourse 论坛运行缓慢?

    • 确保服务器具有足够的资源。
    • 调整 Discourse 的配置以提高性能。
  • 如何更新 Discourse?

    • 停止 Discourse 容器(docker stop discourse)。
    • 拉取最新的 Discourse 镜像(docker pull discourse/discourse)。
    • 重新启动 Discourse 容器(docker start discourse)。
  • 如何备份 Discourse 数据?

    • 停止 Discourse 容器(docker stop discourse)。
    • 复制数据库卷(docker cp discourse_db_data backup-directory)。
    • 启动 Discourse 容器(docker start discourse)。