我在 Error Updating from 3.4.0.beta3-dev to 3.4.0.beta3 中描述了症状
只是错误有所不同。
我无法引用你的图片。
但看起来你需要删除旧的 postgres_data_old 目录。如果你有空间并且很担心的话,可以将其重命名。
我弄不明白如何复制网络列表的屏幕输出。
这是我消息的要点。
也许先检查一下它是不是旧的
ls -l /var/discourse/shared/standalone/
并确保该备份目录的日期不是今天。
如果你有足够的磁盘空间,你可以这样做
cd /var/discourse
cd shared/standalone
mv postgres_data_old postgres_data_delete_me
然后重试
没有成功。
我认为我正在重复 Upgrade failed spectacularily
请分享您的 app.yml 文件内容?发布前请删除任何敏感信息。
from root@localhost: /var/discourse/containers
## 这是独立的、一体化的 Discourse Docker 容器模板
##
## 修改此文件后,您必须重建
## /var/discourse/launcher rebuild app
##
## 编辑时请*极其小心*!
## YAML 文件对空格或对齐的错误非常非常敏感!
## 如有需要,请访问 http://www.yamllint.com/ 来验证此文件
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## 如果您想添加 Let's Encrypt (https),请取消注释这两行
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
## 此容器应公开哪些 TCP/IP 端口?
## 如果您希望 Discourse 与 Apache 或 nginx 等其他 Web 服务器共享端口,
## 请参阅 https://meta.discourse.org/t/17247 获取详细信息
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## 将 db_shared_buffers 设置为总内存的最多 25%。
## 将由 bootstrap 根据检测到的 RAM 自动设置,或者您可以覆盖它
db_shared_buffers: "256MB"
## 可以提高排序性能,但会增加每个连接的内存使用量
#db_work_mem: "40MB"
## 此容器应使用哪个 Git 版本? (默认值:tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## 支持多少并发 Web 请求?取决于内存和 CPU 核心。
## 将由 bootstrap 根据检测到的 CPU 自动设置,或者您可以覆盖它
UNICORN_WORKERS: 4
## TODO: 此 Discourse 实例将响应的域名
DISCOURSE_HOSTNAME: <mydomain>
## 如果您希望容器以与上面指定的相同的主机名 (-h 选项) 启动,请取消注释
## (默认值为“$hostname-$config”)
#DOCKER_USE_HOSTNAME: true
## TODO: 将被设为管理员和开发者的逗号分隔的电子邮件列表
## 首次注册时,例如“user1@example.com,user2@example.com”
DISCOURSE_DEVELOPER_EMAILS: <myemail>
## TODO: 用于验证新帐户和发送通知的 SMTP 邮件服务器
DISCOURSE_SMTP_ADDRESS: <mymailorg>
DISCOURSE_SMTP_PORT: <myport>
DISCOURSE_SMTP_USER_NAME: <mysmpremail>
DISCOURSE_SMTP_PASSWORD: <mypassword>
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (可选,默认为 true)
## 如果您添加了 Let's Encrypt 模板,请取消注释下方以获取免费 SSL 证书
LETSENCRYPT_ACCOUNT_EMAIL: <myemail>
## 此 Discourse 实例的 CDN 地址 (配置为拉取)
## 请参阅 https://meta.discourse.org/t/14857 获取详细信息
#DISCOURSE_CDN_URL: //discourse-cdn.example.com
## Docker 容器是无状态的;所有数据都存储在 /shared 中
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## 插件在此处
## 请参阅 https://meta.discourse.org/t/19157 获取详细信息
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-math.git
## 构建后要运行的任何自定义命令
run:
- exec: echo "Beginning of custom commands"
## 如果您想设置首次注册的“发件人”电子邮件地址,请取消注释并更改:
## 收到首次注册电子邮件后,请重新注释该行。它只需要运行一次。
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "End of custom commands"
您能否确认一下您的 Docker 版本?如果您使用的版本低于我们推荐的 24.0.7 版本,我建议您更新 Docker 然后重试。
在另一个主题中曾报告过类似的问题,更新 Docker 似乎解决了那里的问题。
Docker 版本 20.10.7,构建 f0df350
cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.7 LTS (Xenial Xerus)"
您似乎遇到了与其他主题中报告的类似 Docker 问题。
我建议您更新 Ubuntu 和 Docker 到更新的版本,然后重试重建。
如果您的旧 app 容器仍然存在,并且您尚未修改 shared/standalone/postgres_data 中的现有数据文件,您可以尝试运行 ./launcher start app 来暂时在旧容器上启动站点。
创建一个具有最新操作系统的新虚拟机将更加容易。18.04 已过支持期,20.04 将于 4 月结束支持。
如果您有最新的备份,请创建一个新服务器并恢复该备份,从而完全避免 PostgreSQL 升级问题。
Discourse 不需要将 PostgreSQL 安装在操作系统上。这也是使用全新操作系统的一个原因。
谢谢 Jay
我已经成功地将一个备份 Linode 恢复到了另一个 Linode(linode2)
现在我需要在 linode2 上启动 Discourse,以便让 Discourse 向我发送备份邮件。
我为 linode2 设置了新的 DNS,但访问时出现 502 Bad Gateway 错误。
也许我需要等待一段时间?
奇怪的是 discbak.softwarebydesign.com.au(linode2)目前正在重定向到 discourse.softwarebydesign.com.au(在原来的 Linode 上)。
您可以使用 scp/rsync 复制备份。它更简单、更快(除非您不知道这意味着什么)。
您确实需要创建一个具有新操作系统的新虚拟机(而不是过时的服务器备份),并按照 使用 rsync 将 Discourse 站点迁移到另一台 VPS 中的描述进行迁移。我刚刚复制的那个也存在一些所有权问题。您可能也会遇到同样的问题。
如果 discbak 运行的镜像与另一台服务器相同,我预计它会给您一个证书错误(除非您访问了 http://),然后重定向到 HOSTNAME 中的任何内容。
可以说我确实不知道我在做什么。
我创建了一个运行 Ubunto 24.0.1 LTS 的新 VPS,并且已经进行到以下指令:
rsync -rvz example.com:/var/discourse /var
由于我的升级失败,example.com 返回 502 错误网关。
我正在学习如何仍然授予访问权限。


