如何在Docker容器中安装Discourse
我们将学习如何使用Docker Platform安装Discourse。
Discourse是为互联网的下一个十年构建的100%开放源讨论平台,具有邮件列表,讨论论坛和长聊天室的功能。
从技术角度和社会学角度,这都是一种明智的尝试,可以重新构想一个现代,可持续,完全开放源代码的Internet讨论平台。
话语是一种简单,干净且直接的讨论方式。
这是一个非常棒的平台,可以在互联网上进行任何形式的讨论,并提供如此出色的服务。
Docker是一个开放源代码平台,它提供了一个开放平台,可作为轻量级容器打包,运送和运行任何应用程序。
Docker容器使Discourse变得非常方便且易于设置应用程序。
因此,这里有一些快速简便的步骤,可在Docker环境中安装Discourse。
1.安装Docker
首先,我们需要确保在主机操作系统中安装了Docker。
要安装,我们需要在shell或者终端中运行以下命令。
在Ubuntu上
软件包docker在Ubuntu的存储库中可用,因此,我们将使用apt管理器以sudo或者root模式安装它。
# apt-get install docker
在CentOS 7上
在CentOS 7机器上,我们将使用yum manager安装docker,因为它在CentOS的存储库中也可用。
# yum install docker
2.设置交换内存
如果内存大小小于1 GB,请确保将系统升级到1 GB或者更高,因为Discourse未安装在512 MB 内存中。
如果现在准备安装1 GB或者以上的Discourse,请按照以下步骤为VPS或者服务器设置交换内存。
我们将通过运行以下命令来创建一个空的交换文件。
# install -o root -g root -m 0600 /dev/null /swapfile
如果我们希望交换内存为1 GB,请执行以下步骤并跳过下一步。
# dd if=/dev/zero of=/swapfile bs=1k count=1024k
如果我们希望它为2 GB,请遵循以下步骤。
确保跳过以上步骤。
# dd if=/dev/zero of=/swapfile bs=1k count=2048k
然后,将交换内存指向swapfile。
#mkswap /swapfile
要激活它,请运行以下命令。
#swapon /swapfile
现在,我们将其添加到文件系统表中,以便在重新启动后将其保存在文件系统表中:
# echo "/swapfile swap swap auto 0 0" | sudo tee -a /etc/fstab
将swappiness设置为10,以便仅将其用作紧急缓冲区。
# sudo sysctl -w vm.swappiness=10 # echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
2.安装Discourse
在我们的主机中安装Docker之后,我们现在将进一步安装Discourse。
现在,我们将从官方Discourse Github中将Discourse克隆到/var/discourse目录中。
为此,我们需要运行以下命令。
# mkdir /var/discourse/ # cd /var/discourse/ # git clone https://github.com/discourse/discourse_docker.git /var/discourse/
克隆git存储库后,我们将复制我们的论述服务器的配置文件。
# cp samples/standalone.yml containers/app.yml
3.配置Discourse
接下来,我们将使用我们喜欢的文本编辑器编辑话语配置,即位于容器目录内的app.yml。
nano containers/app.yml
现在,我们需要将开发者的电子邮件地址设置为DISCOURSE_DEVELOPER_EMAILS,如下所示。
DISCOURSE_DEVELOPER_EMAILS: '[email protected]'
然后,我们将主机名设置为服务器的域名。
DISCOURSE_HOSTNAME: 'discourse.theitroad.com'
然后,根据在同一论述机器或者vps中托管的SMTP服务器设置邮件凭据。
SMTP设置是从Discourse实例发送邮件所必需的
DISCOURSE_SMTP_ADDRESS: smtp.theitroad.com DISCOURSE_SMTP_PORT: 587 # (optional) DISCOURSE_SMTP_USER_NAME: [email protected] # (optional) DISCOURSE_SMTP_PASSWORD: test123 # (optional)
如果使用的是1 GB实例,请将UNICORN_WORKERS设置为2,将db_shared_buffers设置为128MB,以便有更多的内存空间。
必须创建一个邮件服务器来运行Discourse。
如果我们有一台服务器,那么它很酷,我们可以使用它的凭据。
如果我们没有现有的邮件服务器,或者我们不知道它是什么?
没问题,请在Mandrill(Mailgun或者Mailjet)上创建一个免费帐户,然后使用仪表板中提供的凭据。
4.启动Discourse应用程序
配置了discourse配置文件之后,我们肯定会想要启动我们的Discourse服务器。
为此,首先我们将通过在当前目录/var/discourse /下运行以下命令来启动语篇引导程序。
# ./launcher bootstrap app
上面的命令可能需要几分钟的时间,它会自动配置我们的Discourse环境。
然后,在流程完成后,我们需要运行以下内容以启动我们的Discourse App。
#./launcher start app
如果一切都按预期进行,那么我们将能够使用我们最喜欢的Web浏览器通过将URL指向http://ip-address /或者http://discourse.theitroad.com/来访问我们全新的Discourse Web界面。
然后,我们可以创建一个新帐户并成为管理员。
维护
以下是/var/discourse /目录中launcher命令的用法,以便我们可以维护和控制Discourse Docker容器。
Usage: launcher COMMAND CONFIG [--skip-prereqs] Commands: start: Start/initialize a container stop: Stop a running container restart: Restart a container destroy: Stop and remove a container enter: Use nsenter to enter a container ssh: Start a bash shell in a running container logs: Docker logs for container mailtest: Test the mail settings in a container bootstrap: Bootstrap a container for the config based on a template rebuild: Rebuild a container (destroy old, bootstrap, start new) cleanup: Remove all containers that have stopped for > 24 hours Options: --skip-prereqs Don't check prerequisites --docker-args Extra arguments to pass when running docker