用docker部署一个Discourse论坛过程1

写在前面

在cloudflare增加一个新二级域名 - bbs.bookstreet.top 指向到新建的谷歌云 IP,开了一台2核4G。
PS:为什么要2核4G这么多?在之后的安装过程中,我看到在命令行进行构建的过程中,CPU和内存几乎到了100%。

准备工作

首先,确保您的Ubuntu系统是最新的:
PS:在之后的部署过程中,需要安装大量的应用程序依赖,这些依赖在老版本的ubuntu中不被支持,只能根据系统提示单独安装。

sudo apt update && sudo apt upgrade -y

安装依赖

Discourse需要一些依赖项:

sudo apt install -y git build-essential libxslt1-dev libcurl4-openssl-dev \
                     libssl-dev libyaml-dev libtool libxml2-dev gawk curl \
                     pngcrush imagemagick jhead jpegoptim gifsicle optipng \
                     pngquant nodejs npm

PS:比如我在部署过程中出现这个错误:

E: Unable to locate package  libssl-dev
E: Unable to locate package  pngcrush
E: Unable to locate package  pngquant

这个错误信息表明我的系统无法找到 libssl-dev、pngcrush 和 pngquant 这几个软件包或者Ubuntu 版本可能太旧,不再支持这些包,需要考虑升级系统。

最后我安装 software-properties-common 包:

sudo apt install software-properties-common

启用 universe 和 multiverse 软件源:

sudo add-apt-repository universe
sudo add-apt-repository multiverse

并且再次更新并尝试安装:

sudo apt update
sudo apt install libssl-dev pngcrush pngquant

这才搞定了缺失这三个软件包的问题。

安装Docker

Discourse推荐使用Docker进行部署:

sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

下载Discourse

sudo mkdir /var/discourse
sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

配置Discourse

sudo ./discourse-setup

这个脚本会引导完成配置过程,包括设置域名、邮件服务器等。

PS:这是最重要的过程,之后的部署过程之中会不会报错也取决于这个配置过程。重点是Mail邮箱的SMTP配置,必须!必须!必须!全部填写正确,以免之后的部署因为修改文件频繁的重新构建程序,占用大量时间。

启动Discourse

配置完成后,使用以下命令启动Discourse:

sudo ./launcher start app

访问论坛

到这一步,应该可以通过配置的域名访问Discourse论坛了,如果还不能访问。建议吧报错信息复制给 ai 进行分析,让 ai 指导修复部署过程的配置错误。这可以节省大量时间。

如果因为邮件SMTP等等信息没有填写正确或者比如我忘记放行Gmail的587防火墙端口导致无法访问论坛,那就要重新编辑 containers/app.yml 文件中的设置:

sudo cat /var/discourse/containers/app.yml

如果不确定如何正确设置这些值,可以尝试重新运行设置向导:

sudo ./discourse-setup

如果您有特殊的配置需求,也是直接编辑 app.yml 这个文件:

sudo nano /var/discourse/containers/app.yml

Discourse 官网:https://www.discourse.org/