用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/