使用标准安装,在编辑 app.yml 步骤时,未找到 app.yml

按照 Docker 初学者安装指南 进行操作,但使用的是 OSU OSL 而非 Digital Ocean(这是 SWI-Prolog 作为开源项目的一项福利)。

电子邮件 步骤中,我改用了更详细的说明,参考文章为 将 Discourse 从 Mandrill 切换到 Mailgun

由于 swi-prolog.org 是一个已注册的域名(可通过 whois 查询),并且之前曾为其他用途在 Mailgun 中配置过,因此我直接跳到了第 4 步:通过 SSH 登录并编辑您的 Discourse 配置(参考 链接)。我可以成功 SSH 登录,但系统中没有 app.yml 文件。

eric@swi-prolog:~$ ls -la /var/discourse/containers
total 8
drwxr-xr-x  2 root root 4096 May 26 13:41 .
drwxr-xr-x 11 root root 4096 May 23 11:02 ..
-rw-r--r--  1 root root    0 May 23 11:02 .gitkeep

目前为止,与安装 Discourse 相关的操作仅包括:

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

接下来应该怎么做?

我猜可能是运行 ./discourse-setup,但不太确定,所以特此请教。


注意:我没有该域名的 Mailgun 登录权限或类似访问权,正在与拥有这些权限的人合作。简而言之,我是在需要时寻求他们的帮助来完成此操作。但由于我从未设置过邮件服务器,也没有 Mailgun 登录权限,因此经常需要摸索和学习。对方已提供了 app.yml 所需的各项值。

没错。它会根据你的回答生成 app.yml。

谢谢你的回复,但我还是不太明白整体内容。部分说得通,但合在一起似乎自相矛盾。

这里的“就是这样”是指运行 ./discourse-setup 吗?

但我还没有提供任何回答。到目前为止,我唯一按照说明进行 Discourse 安装的操作是:

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

app.yml 还不存在,无法输入值。

我已经安装了一个开发版本并且正在运行,所以对于正在讨论的这个构建,我预期会看到一个脚本自动完成大部分构建工作,但我还没有执行这一步。

是的,这意味着运行,届时您将输入系统生成 app.yml 所需的数据。

或者,如果您不运行 ./discourse-setup,则需要将 samples/standalone.yml 文件复制到 containers/app.yml 并自行编辑。

现在我已经从刚才的迷糊中清醒过来,并且已经执行到运行 $ sudo ./discourse-setup 时的“Building app”步骤,这两个回复现在都讲得通了。

对于和提问者一样处于相同阶段的朋友,以下是我所做的操作:

  1. 按照 Justin 的说明,从 samples 目录复制一份 app.yml
$ sudo cp /var/discourse/samples/standalone.yml /var/discourse/containers/app.yml
  1. 按照这篇博客 文章 中的说明,修改 SMTP 邮件服务器的三个值。
$ sudo vim containers/app.yml
  1. 由于之前我选择让 Discourse build 安装 Docker,因此无法执行重建步骤,跳过此步。
$ ./launcher rebuild app
  1. 执行 Discourse 设置
$ sudo ./discourse-setup

在这里会出现 Robert 提到的那些提示。由于我从未进行过生产环境安装,因此之前并未见过这些特定的提示。

由于 Docker 尚未安装,第一个提示是安装 Docker:

Docker not installed. Enter to install from https://get.docker.com/ or Ctrl+C to exit

随后 Docker 被安装,接着出现:

Hostname for your Discourse? [discourse.example.com]: ***

Checking your domain name . . .
Connection to *** succeeded.
Email address for admin account(s)? [me@example.com,you@example.com]: ***@gmail.com
SMTP server address? [***.mailgun.org]:  
SMTP port? [587]: 
SMTP user name? [***@***]: 
SMTP password? [55...]: 
Optional email address for Let's Encrypt warnings? (ENTER to skip) [me@example.com]: ***@gmail.com

Does this look right?

Hostname      : ***
Email         : ***@gmail.com
SMTP address  : ***.mailgun.org
SMTP port     : 587
SMTP username : ***@***
SMTP password : 55...
Let's Encrypt : ***@gmail.com

ENTER to continue, 'n' to try again, Ctrl+C to exit:
Enabling Let's Encrypt
web.ssl.template.yml enabled
letsencrypt.ssl.template.yml enabled

Configuration file at  updated successfully!

Updates successful. Rebuilding in 5 seconds.
Building app
...

太棒了——我已将您的帖子标记为解决方案,以便将来参考!