如何使用 Windows 10 Docker Desktop 安装 Discourse?

我已经完成了使用 WSL 并下载了 Ubuntu 20.04.4 LTS 的步骤。
然后按照
-https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md
进行设置时,我收到了一个提示,建议我使用

检测到 WSL:我们建议使用 Docker Desktop for Windows。
请从 https://www.docker.com/products/docker-desktop 获取 Docker Desktop

问题是;我已经安装了 Docker Desktop。但我没有找到可以安装 Discourse 生产环境的教程。我不想让我的电子邮件被捕获,并且我已经在一个免费的 Oracle 实例上运行 Discourse,电子邮件已设置好,知道如何使用 app.yml 安装插件。
我想尽快从那里迁移,因为构建速度太慢了,而且我希望获得比论坛在仅仅点击备份时就冻结更好的体验。

我应该如何在 Windows 10 上的 Docker Desktop 中将 Discourse 安装到容器中?我应该忽略这个 WSL 警告并继续吗?

我不知道是否应该使用
bitnami/discourse

https://hub.docker.com/r/bitnami/discourse

因为尝试使用 discourse/base

https://hub.docker.com/r/discourse/base
docker pull discourse/base
结果是

PS C:\Users\localuser> docker pull discourse/base
使用默认标签:latest
错误响应来自守护进程:manifest for discourse/base:latest not found: manifest unknown: manifest unknown

简而言之,我应该使用什么设置说明来在 Windows 10 21h1 上使用 Docker Desktop 进行生产?

1 个赞

如果你想要一个生产环境,你需要使用 Ubuntu(或者至少是某种 Linux)。Windows 不支持生产环境。

1 个赞

你的目的是什么?是有一个可以在电脑外访问的论坛,还是只是在本地安装上尝试一些东西?

我每天都在 Windows 10 上的 WSL 通过 Ubuntu 上的一个“生产”论坛进行实验。该论坛无法从互联网访问,我只在本地使用它。我刚刚在 Windows 中配置了一些文件,以便可以通过我的 Windows 浏览器访问该论坛。

3 个赞

我只是想在本地机器上运行 discourse 网站,而不使用开发模式设置。我只是想看看是否有关于如何使用 docker desktop 进行设置的说明,因为在设置 WSL Ubuntu 24.04.4 时,云安装说明告诉我这样做。

我计划只使用 Cloudflare tunnel 并启用 app.yml 中的模板。

是使用 docker desktop 更好,还是我应该忽略警告,等待 +sleep 20,然后仍然在 WSL 上安装?

对于我的配置,其中论坛无法从 Internet 访问,但可以从我自己的计算机访问),我忽略了警告。

但是,我需要一个域名从我的 Windows 浏览器解析,所以我需要执行以下步骤:

  1. 通过编辑 c:/windows/system32/drivers/etc/hosts 将任意域名(此处为 d.com)重定向到我的计算机。我添加了以下行:

    127.0.0.1         d.com
    255.255.255.255   broadcasthost
    ::1               localhost d.com
    
  2. 创建一个新文件:C:\\Users\\yourWindowsUserName\\.wslconfig 并在其中写入:

    [wsl2]
    localhostForwarding=true
    
  3. 重启 WSL:
    wsl --shutdown (Powershell)

    wsl.exe --shutdown (Ubuntu)

  4. 在 Ubuntu 中,启动 Docker(它不会自动启动):
    service docker start

  5. 注释掉 /var/discourse/container/app.yml 中的 SSL 行,例如:

    #  - "templates/web.ssl.template.yml"
    #  - "templates/web.letsencrypt.ssl.template.yml"
    
  6. 重新构建