Discourse + DigitalOcean + Mailjet 设置

在指责我之前,请注意,我已经阅读了论坛上关于 Discourse + Mailjet 的几乎所有帖子,但没有任何帖子回答了我具体的问题。

在设置过程中,Discourse 需要以下信息:

  • DISCOURSE_DEVELOPER_EMAILS — 可以是任何内容
  • DISCOURSE_SMTP_ADDRESS — 我正在使用 in-v3.mailjet.com,但这只是猜测!
  • DISCOURSE_SMTP_PORT — 587
  • DISCOURSE_SMTP_USER_NAME — 我的 Mailjet 登录名?
  • DISCOURSE_SMTP_PASSWORD — 我的 Mailjet 登录密码?

我完全不确定的是以下三项:

  • DISCOURSE_SMTP_ADDRESS
  • DISCOURSE_SMTP_USER_NAME
  • DISCOURSE_SMTP_PASSWORD

Mailjet 没有在他们的 UI 中将所有这些项目放在一个地方,而且非常不清楚什么应该放在哪里。

我已经联系了他们的支持人员,但他们回复说:“在审查了工单中的信息后,已确定我们需要联系另一组同事。”

……然后他们消失了 48 小时。

我已经为 Mailjet 设置了 SPF 和 DKIM 记录,所以所有这些都已就绪,但我认为用户名和密码不正确,因为 /discourse-doctor 表明这是失败点。

如果您能给我一些清晰的见解,我将非常感激!谢谢。

我可能还应该提到:这个 Discourse 安装程序运行在一个子域上。

我已经在许多其他子域上安装了 Discourse(使用 Mailgun),在所有这些情况下,我都不需要为 DNS 记录中的子域做任何特殊规定(特别是 Mailgun 的 SPF 和 DKIM 记录)。

然而,这些论坛中的一些帖子表明我需要修改子域的 DNS 记录。

但我正在使用 Mailjet 为主域(一个 WordPress 网站)和子域上的事务性电子邮件提供服务。在我看来,如果我修改记录以指示子域,那么事务性电子邮件将不再能在 WordPress 网站上运行。

或者,我需要两组记录才能让它们在两者上都正常工作。

但根据 Mailgun 网站的运行方式,我认为除了创建子域的 A 记录之外,我不需要为子域在 DNS 中做任何特殊规定。

显然,我至少有些困惑,所以任何你能提供的指导我都会感激。

您可以在 Mailjet 此页面上找到它们,或者在需要时进行设置。

DISCOURSE_SMTP_USER_NAME = MailJet 的 API 密钥
DISCOURSE_SMTP_PASSWORD = MailJet 的 API 密钥密文
DISCOURSE_SMTP_ADDRESS 在您的示例中是正确的,但也可以在同一屏幕上找到。

我相信 MailJet 需要您设置子域,虽然已经有一段时间了。

哇,所以用户名就是 API 密钥?我从来没想过。我试试看能不能成功。

顺便问一下——你知道怎么把发件人从一个电子邮件地址改成另一个吗?默认的 WordPress 发件人目前是与实际网站不同的域名,我想更改它。(我不知道我当初是怎么改的,也不知道它现在是从哪里获取的值,因为它与 WordPress 管理员的电子邮件地址不匹配。)

那是 DISCOURSE_NOTIFICATION_EMAIL,并且 discourse-setup 会询问您“通知电子邮件地址?”,因此您可以通过这种方式轻松更改它。

谢谢!

到目前为止,这对我来说是行不通的。Discourse 无法成功从控制台发送测试电子邮件,并且 Discourse 安装过程未完成(原因不明)。

我将清除所有内容并重试。

好的,这是我在安装失败时收到的消息:

有什么办法可以解决这个问题吗?不清楚哪里出了问题,因为这个错误来自安装文件内部(而不是我输入的任何内容)。

您能分享完整的日志吗?在那行之前应该至少有几处错误。

正在运行 discourse doctor,完成后将提供日志。有两个问题:

  1. Discourse doctor 在以下几行似乎卡住了:
Node.js heap_size_limit (488.25) is less than 1024MB. Setting --max-old-space-size=1024.
Node.js heap_size_limit (488.25) is less than 2048MB. Disabling Webpack parallelization with JOBS=0 to conserve memory.
110:M 06 Dec 2023 20:31:39.033 * 100 changes in 300 seconds. Saving...
110:M 06 Dec 2023 20:31:39.037 * Background saving started by pid 3264
3264:C 06 Dec 2023 20:31:39.055 * DB saved on disk
3264:C 06 Dec 2023 20:31:39.056 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB
110:M 06 Dec 2023 20:31:39.138 * Background saving terminated with success
  1. 我需要输入什么命令来获取日志文件?以及如何将其下载为可以提供给您的文件?(正如您可能已经清楚的,我不是一个熟练的控制台用户。)

Discourse doctor 已自行完成,但仍有错误。

这是来自 MAIL TEST 的结果,它奇怪地提示了以下内容:

Error response from daemon: No such container: app

另外,我目前正在查看 discourse doctor 进程的 less 输出,但我没有看到任何关于如何与您共享此信息的命令(除了巨大的复制粘贴)。

有道理,考虑到论坛构建失败。

复制粘贴是我会建议的做法。

找到 containers/app.yml

==================== YML 设置 ====================
DISCOURSE_HOSTNAME=forum.jimclair.com
SMTP_ADDRESS=in-v3.mailjet.com
DEVELOPER_EMAILS=已隐藏 
SMTP_PASSWORD=已隐藏 
SMTP_PORT=587
SMTP_USER_NAME=495e2921d498a8d1d5ebb0afaccd7b1e
LETSENCRYPT_ACCOUNT_EMAIL=已隐藏 

==================== Docker 信息 ====================
Docker 版本:Docker version 24.0.7, build afdd53b

Docker 进程 (docker ps -a)

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

==================== 严重问题!!!! ====================
应用未运行!
正在尝试重建
==================== 重建日志 ====================
检测到 x86_64 架构。
确保启动器为最新版本
启动器已是最新
2.0.20231023-1945: Pulling from discourse/base
Digest: sha256:2b0eb484d20888cc2daadb690dcfa73522105650c1420212e99345a36a424d77
Status: Image is up to date for discourse/base:2.0.20231023-1945
docker.io/discourse/base:2.0.20231023-1945
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2023-12-06T20:26:30.044059 #1]  INFO -- : Reading from stdin
I, [2023-12-06T20:26:30.054996 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2023-12-06T20:26:30.127937 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2023-12-06T20:26:30.129014 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2023-12-06T20:26:30.136308 #1]  INFO -- : 
I, [2023-12-06T20:26:30.137496 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2023-12-06T20:26:30.146483 #1]  INFO -- : 
I, [2023-12-06T20:26:30.147545 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2023-12-06T20:26:30.151785 #1]  INFO -- : 
I, [2023-12-06T20:26:30.152774 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2023-12-06T20:26:30.156678 #1]  INFO -- : 
I, [2023-12-06T20:26:30.157561 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2023-12-06T20:26:30.161932 #1]  INFO -- : 
I, [2023-12-06T20:26:30.162762 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2023/12/06 20:26:30 socat[18] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2023-12-06T20:26:30.178043 #1]  INFO -- : 
I, [2023-12-06T20:26:30.178987 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2023-12-06T20:26:30.185013 #1]  INFO -- : 
I, [2023-12-06T20:26:30.186426 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2023-12-06T20:26:30.192271 #1]  INFO -- : 
I, [2023-12-06T20:26:30.193332 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2023-12-06T20:26:30.198906 #1]  INFO -- : 
I, [2023-12-06T20:26:30.200224 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2023-12-06T20:26:30.205350 #1]  INFO -- : 
I, [2023-12-06T20:26:30.216408 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2023-12-06T20:26:30.226083 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2023-12-06T20:26:30.235233 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2023-12-06T20:26:30.244692 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2023-12-06T20:26:30.246204 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2023-12-06T20:26:32.183094 #1]  INFO -- : 
I, [2023-12-06T20:26:32.184301 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2023-12-06T20:26:32.188149 #1]  INFO -- : 
I, [2023-12-06T20:26:32.188988 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2023-12-06T20:26:32.234190 #1]  INFO -- : 
I, [2023-12-06T20:26:32.235330 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2023-12-06T20:26:32.239962 #1]  INFO -- : 
I, [2023-12-06T20:26:32.241087 #1]  INFO -- : > /root/upgrade_postgres
I, [2023-12-06T20:26:32.250757 #1]  INFO -- : 
I, [2023-12-06T20:26:32.251706 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2023-12-06T20:26:32.255928 #1]  INFO -- : 
I, [2023-12-06T20:26:32.258122 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.259713 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.260811 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.262442 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.263355 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.264184 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.264947 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2023-12-06T20:26:32.272176 #1]  INFO -- : 
I, [2023-12-06T20:26:32.273754 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.274919 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.275763 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2023-12-06T20:26:32.276744 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2023-12-06T20:26:32.277507 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2023-12-06T20:26:32.278326 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2023-12-06T20:26:32.279092 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2023-12-06T20:26:32.282210 #1]  INFO -- : > sleep 5
2023-12-06 20:26:32.359 UTC [41] LOG:  starting PostgreSQL 13.12 (Debian 13.12-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2023-12-06 20:26:32.361 UTC [41] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2023-12-06 20:26:32.362 UTC [41] LOG:  listening on IPv6 address "::", port 5432
2023-12-06 20:26:32.365 UTC [41] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2023-12-06 20:26:32.373 UTC [44] LOG:  database system was shut down at 2023-12-06 20:24:03 UTC
2023-12-06 20:26:32.383 UTC [41] LOG:  database system is ready to accept connections
I, [2023-12-06T20:26:37.289395 #1]  INFO -- : 
I, [2023-12-06T20:26:37.289669 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
2023-12-06 20:26:37.379 UTC [54] postgres@postgres ERROR:  database "discourse" already exists
2023-12-06 20:26:37.379 UTC [54] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR:  database "discourse" already exists
I, [2023-12-06T20:26:37.385520 #1]  INFO -- : 
I, [2023-12-06T20:26:37.386567 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2023-12-06 20:26:37.489 UTC [58] postgres@discourse ERROR:  role "discourse" already exists
2023-12-06 20:26:37.489 UTC [58] postgres@discourse STATEMENT:  create user discourse;
ERROR:  role "discourse" already exists
I, [2023-12-06T20:26:37.493228 #1]  INFO -- : 
I, [2023-12-06T20:26:37.494395 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
I, [2023-12-06T20:26:37.580872 #1]  INFO -- : GRANT

I, [2023-12-06T20:26:37.582256 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
I, [2023-12-06T20:26:37.675825 #1]  INFO -- : ALTER SCHEMA

I, [2023-12-06T20:26:37.676981 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists hstore;"'
NOTICE:  extension "hstore" already exists, skipping
I, [2023-12-06T20:26:37.768934 #1]  INFO -- : CREATE EXTENSION
I, [2023-12-06T20:26:37.770031 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists pg_trgm;"'
NOTICE:  extension "pg_trgm" already exists, skipping
I, [2023-12-06T20:26:37.859735 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:37.860890 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists vector;"'
NOTICE:  extension "vector" already exists, skipping
I, [2023-12-06T20:26:37.935265 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:37.936060 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists hstore;"'
NOTICE:  extension "hstore" already exists, skipping
I, [2023-12-06T20:26:37.997652 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:37.998539 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists pg_trgm;"'
NOTICE:  extension "pg_trgm" already exists, skipping
I, [2023-12-06T20:26:38.064153 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:38.065166 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists vector;"'
NOTICE:  extension "vector" already exists, skipping
I, [2023-12-06T20:26:38.129276 #1]  INFO -- : CREATE EXTENSION

I, [2023-12-06T20:26:38.130194 #1]  INFO -- : > sudo -u postgres psql discourse
I, [2023-12-06T20:26:38.135353 #1]  INFO -- : update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'discourse' AND encoding = pg_char_to_encoding('SQL_ASCII');

I, [2023-12-06T20:26:38.239022 #1]  INFO -- : File > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2023-12-06T20:26:38.244519 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:   chown: 
I, [2023-12-06T20:26:38.245255 #1]  INFO -- : > echo postgres installed!
I, [2023-12-06T20:26:38.248470 #1]  INFO -- : postgres installed!

I, [2023-12-06T20:26:38.255515 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown: 
I, [2023-12-06T20:26:38.261932 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  chown: 
I, [2023-12-06T20:26:38.268388 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown: 
I, [2023-12-06T20:26:38.270088 #1]  INFO -- : Replacing daemonize yes with  in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.271335 #1]  INFO -- : Replacing (?-mix:^pidfile.*$) with  in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.272324 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2023-12-06T20:26:38.276442 #1]  INFO -- : 
I, [2023-12-06T20:26:38.277583 #1]  INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.278657 #1]  INFO -- : Replacing (?-mix:^bind .*$) with  in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.281449 #1]  INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.283018 #1]  INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.284259 #1]  INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2023-12-06T20:26:38.286500 #1]  INFO -- : > echo redis installed
I, [2023-12-06T20:26:38.289930 #1]  INFO -- : redis installed

I, [2023-12-06T20:26:38.290767 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2023-12-06T20:26:38.300057 #1]  INFO -- : logfile ""

I, [2023-12-06T20:26:38.300939 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2023-12-06T20:26:38.303702 #1]  INFO -- : > sleep 10
110:C 06 Dec 2023 20:26:38.320 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
110:C 06 Dec 2023 20:26:38.321 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=110, just started
110:C 06 Dec 2023 20:26:38.322 # Configuration loaded
110:M 06 Dec 2023 20:26:38.323 * monotonic clock: POSIX clock_gettime
110:M 06 Dec 2023 20:26:38.325 * Running mode=standalone, port=6379.
110:M 06 Dec 2023 20:26:38.325 # Server initialized
110:M 06 Dec 2023 20:26:38.326 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
110:M 06 Dec 2023 20:26:38.327 * Loading RDB produced by version 7.0.7
110:M 06 Dec 2023 20:26:38.328 * RDB age 155 seconds
110:M 06 Dec 2023 20:26:38.328 * RDB memory usage when created 1.44 Mb
110:M 06 Dec 2023 20:26:38.329 * Done loading RDB, keys loaded: 34, keys expired: 0.
110:M 06 Dec 2023 20:26:38.330 * DB loaded from disk: 0.003 seconds
110:M 06 Dec 2023 20:26:38.330 * Ready to accept connections
I, [2023-12-06T20:26:48.309711 #1]  INFO -- : 
I, [2023-12-06T20:26:48.310733 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2023-12-06T20:26:48.315835 #1]  INFO -- : thpoff is installed!

I, [2023-12-06T20:26:48.316614 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2023-12-06T20:26:48.421314 #1]  INFO -- : 
I, [2023-12-06T20:26:48.422469 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2023-12-06T20:26:48.505162 #1]  INFO -- : 
I, [2023-12-06T20:26:48.506193 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2023-12-06T20:26:48.592535 #1]  INFO -- : 
I, [2023-12-06T20:26:48.593337 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2023-12-06T20:26:48.597070 #1]  INFO -- : 
I, [2023-12-06T20:26:48.601327 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown: 
I, [2023-12-06T20:26:48.608402 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown: 
I, [2023-12-06T20:26:48.614544 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown: 
I, [2023-12-06T20:26:48.620938 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown: 
I, [2023-12-06T20:26:48.627641 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown: 
I, [2023-12-06T20:26:48.634446 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown: 
I, [2023-12-06T20:26:48.635292 #1]  INFO -- : Replacing # postgres with sv start postgres || exit 1 in /etc/service/unicorn/run
I, [2023-12-06T20:26:48.636055 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2023-12-06T20:26:48.639453 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
137:C 06 Dec 2023 20:26:48.649 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
137:C 06 Dec 2023 20:26:48.650 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=137, just started
137:C 06 Dec 2023 20:26:48.650 # Configuration loaded
137:M 06 Dec 2023 20:26:48.651 * monotonic clock: POSIX clock_gettime
137:M 06 Dec 2023 20:26:48.654 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
137:M 06 Dec 2023 20:26:48.654 # Failed listening on port 6379 (TCP), aborting.
Updating files:  14% (4924/33858)^MUpdating files:  15% (5079/33858)^MUpdating files:  16% (5418/33858)^MUpdating files:  17% (5756/33858)^MUpdating files:  18% (6095/33858)^MUpdating files:  19% (6434/33858)^MUpdating files:  20% (6772/33858)^MUpdating files:  21% (7111/33858)^MUpdating files:  22% (7449/33858)^MUpdating files:  23% (7788/33858)^MUpdating files:  24% (8126/33858)^MUpdating files:  25% (8465/33858)^MUpdating files:  26% (8804/33858)^MUpdating files:  27% (9142/33858)^MUpdating files:  28% (9481/33858)^MUpdating files:  28% (9556/33858)^MUpdating files:  29% (9819/33858)^MUpdating files:  30% (10158/33858)^MUpdating files:  31% (10496/33858)^MUpdating files:  32% (10835/33858)^MUpdating files:  33% (11174/33858)^MUpdating files:  34% (11512/33858)^MUpdating files:  35% (11851/33858)^MUpdating files:  36% (12189/33858)^MUpdating files:  37% (12528/33858)^MUpdating files:  38% (12867/33858)^MUpdating files:  39% (13205/33858)^MUpdating files:  40% (13544/33858)^MUpdating files:  41% (13882/33858)^MUpdating files:  42% (14221/33858)^MUpdating files:  43% (14559/33858)^MUpdating files:  44% (14898/33858)^MUpdating files:  45% (15237/33858)^MUpdating files:  45% (15499/33858)^MUpdating files:  46% (15575/33858)^M^MUpdating files:  47% (15914/33858)^MUpdating files:  48% (16252/33858)^MUpdating files:  49% (16591/33858)^MUpdating files:  50% (16929/33858)^MUpdating files:  51% (17268/33858)^MUpdating files:  52% (17607/33858)^MUpdating files:  53% (17945/33858)^MUpdating files:  54% (18284/33858)^MUpdating files:  55% (18622/33858)^MUpdating files:  56% (18961/33858)^MUpdating files:  57% (19300/33858)^MUpdating files:  58% (19638/33858)^MUpdating files:  59% (19977/33858)^MUpdating files:  60% (20315/33858)^MUpdating files:  61% (20654/33858)^MUpdating files:  62% (20992/33858)^MUpdating files:  63% (21331/33858)^MUpdating files:  64% (21670/33858)^MUpdating files:  64% (21754/33858)^MUpdating files:  65% (22008/33858)^MUpdating files:  66% (22347/33858)^MUpdating files:  67% (22685/33858)^MUpdating files:  68% (23024/33858)^MUpdating files:  69% (23363/33858)^MUpdating files:  70% (23701/33858)^MUpdating files:  71% (24040/33858)^MUpdating files:  72% (24378/33858)^MUpdating files:  73% (24717/33858)^MUpdating files:  74% (25055/33858)^MUpdating files:  75% (25394/33858)^MUpdating files:  76% (25733/33858)^MUpdating files:  77% (26071/33858)^MUpdating files:  78% (26410/33858)^MUpdating files:  79% (26748/33858)^MUpdating files:  80% (27087/33858)^MUpdating files:  80% (27336/33858)^MUpdating files:  81% (27425/33858)^MUpdating files:  82% (27764/33858)^MUpdating files:  83% (28103/33858)^MUpdating files:  84% (28441/33858)^MUpdating files:  85% (28780/33858)^MUpdating files:  86% (29118/33858)^MUpdating files:  87% (29457/33858)^MUpdating files:  88% (29796/33858)^MUpdating files:  89% (30134/33858)^MUpdating files:  90% (30473/33858)^MUpdating files:  91% (30811/33858)^MUpdating files:  92% (31150/33858)^MUpdating files:  93% (31488/33858)^MUpdating files:  94% (31827/33858)^MUpdating files:  94% (32069/33858)^MUpdating files:  95% (32166/33858)^MUpdating files:  96% (32504/33858)^MUpdating files:  97% (32843/33858)^MUpdating files:  98% (33181/33858)^MUpdating files:  99% (33520/33858)^MUpdating files: 100% (33858/33858)^MUpdating files: 100% (33858/33858), done.
I, [2023-12-06T20:26:56.173644 #1]  INFO -- : HEAD is now at 043b4a418 FIX: replaces data-tooltip usage by <DTooltip /> (#24062)

I, [2023-12-06T20:26:56.177410 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2023-12-06T20:26:56.982967 #1]  INFO -- : 
I, [2023-12-06T20:26:56.983710 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin tests-passed
      git fetch --depth 1 origin tests-passed
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
来自 https://github.com/discourse/discourse
 - [已删除]             (无)     -> origin/0-flake-key
 - [已删除]             (无)     -> origin/0-obscuring
 - [已删除]             (无)     -> origin/0-router-lint
 - [已删除]             (无)     -> origin/0-router-service
 - [已删除]             (无)     -> origin/autoimport-cleanup
 - [已删除]             (无)     -> origin/category-bullet-only
 - [已删除]             (无)     -> origin/dependabot/bundler/syntax_tree-6.2.0
 - [已删除]             (无)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-3.4.0
 - [已删除]             (无)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-multipart-3.8.0
 - [已删除]             (无)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/core-3.6.0
 - [已删除]             (无)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/utils-5.5.2
 - [已删除]             (无)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/xhr-upload-3.4.2
 - [已删除]             (无)     -> origin/dev-upgrade-reject-reason-reviewable-modal
 - [已删除]             (无)     -> origin/dev/ability-to-collect-stats-without-public-exposing
 - [已删除]             (无)     -> origin/dev/minio-s3-system-specs
 - [已删除]             (无)     -> origin/dev/re-enable-minio-specs
 - [已删除]             (无)     -> origin/dev/switch-over-category-settings
 - [已删除]             (无)     -> origin/dev/switch-over-more-category-settings
 - [已删除]             (无)     -> origin/discovery-named-outlets
 - [已删除]             (无)     -> origin/feature/theme-settings-migration
 - [已删除]             (无)     -> origin/fix/account-for-empty-string-site-settings
 - [已删除]             (无)     -> origin/footnote-plugin
 - [已删除]             (无)     -> origin/metadata-update
 - [已删除]             (无)     -> origin/modal-ux
 - [已删除]             (无)     -> origin/neil-2
 - [已删除]             (无)     -> origin/perf_cache_async_search
 - [已删除]             (无)     -> origin/spoiler-plugin
 - [已删除]             (无)     -> origin/support-search-customizationz
   043b4a418..42a75e3df  main                   -> origin/main
 * [新分支]          0-lint-suffix          -> origin/0-lint-suffix
 * [新分支]          0-rubocop              -> origin/0-rubocop
 * [新分支]          0-timeoubara           -> origin/0-timeoubara
 * [新分支]          0-typos                -> origin/0-typos
 * [新分支]          add-custom-emoji-sanitization-clean -> origin/add-custom-emoji-sanitization-clean
 * [新分支]          add-ds-store-to-gitignore -> origin/add-ds-store-to-gitignore
 + 64520a075...ff17131c9 add-new-chat-indicator-preference-only-mentions -> origin/add-new-chat-indicator-preference-only-mentions  (强制更新)
 * [新分支]          api-topic-title-decorator -> origin/api-topic-title-decorator
 * [新分支]          array-custom-field-fix -> origin/array-custom-field-fix
 * [新分支]          array-custom-field-order -> origin/array-custom-field-order
 * [新分支]          avatar-notifications   -> origin/avatar-notifications
 * [新分支]          boosted-searches       -> origin/boosted-searches
 * [新分支]          bulk-button-class      -> origin/bulk-button-class
 * [新分支]          category_definition    -> origin/category_definition
 * [新分支]          chat-github-onebox     -> origin/chat-github-onebox
 * [新分支]          chat-reaction-emoji-alignment -> origin/chat-reaction-emoji-alignment
 * [新分支]          chat/direct-messages   -> origin/chat/direct-messages
 * [新分支]          custom-field-store-cleanup -> origin/custom-field-store-cleanup
 * [新分支]          delete-backups-based-on-time-window -> origin/delete-backups-based-on-time-window
 * [新分支]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-3.5.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-3.5.0
 * [新分支]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-multipart-3.9.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/aws-s3-multipart-3.9.0
* [新分支]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/core-3.7.1 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/core-3.7.1
 * [新分支]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/utils-5.6.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/utils-5.6.0
 * [新分支]          dependabot/npm_and_yarn/app/assets/javascripts/uppy/xhr-upload-3.5.0 -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/xhr-upload-3.5.0
 * [新分支]          desktop-notification-handlers -> origin/desktop-notification-handlers
 * [新分支]          dev/add-a-reference-column-to-notifications -> origin/dev/add-a-reference-column-to-notifications
 + ee95e6359...346f9d1cd dev/add-new-chat-metrics -> origin/dev/add-new-chat-metrics  (强制更新)
 * [新分支]          dev/dry-up-user-status-serializers -> origin/dev/dry-up-user-status-serializers
 * [新分支]          dev/flaky-chat-details-collapser-spec -> origin/dev/flaky-chat-details-collapser-spec
 * [新分支]          dev/no-need-to-include-user-status-twice -> origin/dev/no-need-to-include-user-status-twice
 * [新分支]          dev/rethink-mass-mentions -> origin/dev/rethink-mass-mentions
 * [新分支]          dev/rethink-mass-mentions-polymorphic -> origin/dev/rethink-mass-mentions-polymorphic
 * [新分支]          dev/revert-guardian-devex -> origin/dev/revert-guardian-devex
 * [新分支]          dev/use-system-user-id-const -> origin/dev/use-system-user-id-const
 + 54940ca5c...fb0c7ba69 dev_paginate_categories_json -> origin/dev_paginate_categories_json  (强制更新)
 * [新分支]          dev_watched_words      -> origin/dev_watched_words
 + 46fe4511f...a9d0e7069 ember-4                -> origin/ember-4  (强制更新)
 * [新分支]          ember-5-plugins        -> origin/ember-5-plugins
 * [新分支]          extract_stripper       -> origin/extract_stripper
 * [新分支]          feature/add-copy-share-link-post-functionality -> origin/feature/add-copy-share-link-post-functionality
   9a6c6fd5b..8780daeee  feature/bookmark-menu-and-modal-redesign -> origin/feature/bookmark-menu-and-modal-redesign
 * [新分支]          feature/migrations-schema-generator -> origin/feature/migrations-schema-generator
 * [新分支]          feature_watched_words_validation -> origin/feature_watched_words_validation
 * [新分支]          file-size-restriction  -> origin/file-size-restriction
   43df37774..4393dd37e  filtered-events        -> origin/filtered-events
 * [新分支]          fix/count-mass-mentions-correctly -> origin/fix/count-mass-mentions-correctly
 * [新分支]          fix_category_select_kits -> origin/fix_category_select_kits
 * [新分支]          full-page              -> origin/full-page
   ce7fb6906..a6227532d  generic-import-latest  -> origin/generic-import-latest
 * [新分支]          generic-import-latest-snowflake -> origin/generic-import-latest-snowflake
 * [新分支]          generic-import-update  -> origin/generic-import-update
 * [新分支]          image-assets           -> origin/image-assets
 * [新分支]          independent-theme-compiler -> origin/independent-theme-compiler
 * [新分支]          input-text-field-component -> origin/input-text-field-component
 * [新分支]          issue/fix-guardian-init-basic-user -> origin/issue/fix-guardian-init-basic-user
 * [新分支]          keyword-site-setting   -> origin/keyword-site-setting
 + bdcc24f96...92e545292 list-wrapper           -> origin/list-wrapper  (强制更新)
   e3636078c..5def32699  mock-chat-index-redesign -> origin/mock-chat-index-redesign
 * [新分支]          move_inflector         -> origin/move_inflector
 * [新分支]          oklab                  -> origin/oklab
 * [新分支]          poc/auto-after-before-plugin-outlets -> origin/poc/auto-after-before-plugin-outlets
 * [新分支]          poc/insert-before-after-wrapping-outlet -> origin/poc/insert-before-after-wrapping-outlet
 * [新分支]          pretty-text-please     -> origin/pretty-text-please
 * [新分支]          revert-maxmind         -> origin/revert-maxmind
   ef3f41543..223626d7a  stable                 -> origin/stable
 * [新分支]          support-load-more-btn  -> origin/support-load-more-btn
 * [新分支]          test-issue-temporary   -> origin/test-issue-temporary
   043b4a418..42a75e3df  tests-passed           -> origin/tests-passed
 * [新分支]          tobiaseigen-patch-3    -> origin/tobiaseigen-patch-3
 * [新分支]          transform-hooks        -> origin/transform-hooks
 * [新分支]          transform-post-fn-api  -> origin/transform-post-fn-api
 * [新分支]          tweaks-2-fr            -> origin/tweaks-2-fr
 * [新分支]          use-sassc-embedded     -> origin/use-sassc-embedded
 * [新分支]          username_cache         -> origin/username_cache
 * [新分支]          ux-add-sorting-params-to-outlet -> origin/ux-add-sorting-params-to-outlet
 t [标签更新]          beta                   -> beta
 t [标签更新]          latest-release         -> latest-release
 * [新标签]             v3.1.3                 -> v3.1.3
 * [新标签]             v3.2.0.beta3           -> v3.2.0.beta3
I, [2023-12-06T20:26:58.926569 #1]  INFO -- : 
I, [2023-12-06T20:26:58.927227 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
      git pull
  else
      git -c advice.detachedHead=false checkout tests-passed
  fi
'
切换到新分支 'tests-passed'
I, [2023-12-06T20:27:03.240852 #1]  INFO -- : 分支 'tests-passed' 已设置为跟踪来自 'origin' 的远程分支 'tests-passed'。

I, [2023-12-06T20:27:03.241691 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2023-12-06T20:27:03.259458 #1]  INFO -- : 
I, [2023-12-06T20:27:03.260307 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2023-12-06T20:27:03.268215 #1]  INFO -- : 
I, [2023-12-06T20:27:03.268948 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2023-12-06T20:27:03.274182 #1]  INFO -- : 
I, [2023-12-06T20:27:03.274855 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2023-12-06T20:27:03.278878 #1]  INFO -- : 
I, [2023-12-06T20:27:03.279454 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2023-12-06T20:27:03.283264 #1]  INFO -- : 
I, [2023-12-06T20:27:03.283766 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2023-12-06T20:27:03.288610 #1]  INFO -- : 
I, [2023-12-06T20:27:03.289240 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2023-12-06T20:27:03.294659 #1]  INFO -- : 
I, [2023-12-06T20:27:03.295302 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2023-12-06T20:27:03.302627 #1]  INFO -- : 
I, [2023-12-06T20:27:03.303433 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2023-12-06T20:27:03.315829 #1]  INFO -- : 
I, [2023-12-06T20:27:03.316535 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2023-12-06T20:27:03.323346 #1]  INFO -- : 
I, [2023-12-06T20:27:03.324041 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2023-12-06T20:27:03.329963 #1]  INFO -- : 
I, [2023-12-06T20:27:03.330611 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2023-12-06T20:27:03.336990 #1]  INFO -- : 
I, [2023-12-06T20:27:03.338135 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2023-12-06T20:27:03.344705 #1]  INFO -- : 
I, [2023-12-06T20:27:03.345357 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2023-12-06T20:27:03.352154 #1]  INFO -- : 
I, [2023-12-06T20:27:03.352907 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2023-12-06T20:27:03.356397 #1]  INFO -- : 
I, [2023-12-06T20:27:03.358224 #1]  INFO -- : 在 /etc/service/unicorn/run 中将 # redis 替换为 sv start redis || exit 1
I, [2023-12-06T20:27:03.359316 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
正克隆到 'docker_manager'...
I, [2023-12-06T20:27:04.552327 #1]  INFO -- : 
I, [2023-12-06T20:27:04.553636 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2023-12-06T20:27:04.563675 #1]  INFO -- : 
I, [2023-12-06T20:27:04.565087 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2023-12-06T20:27:04.571639 #1]  INFO -- : 
I, [2023-12-06T20:27:04.573162 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2023-12-06T20:27:04.580350 #1]  INFO -- : 
I, [2023-12-06T20:27:04.582472 #1]  INFO -- : 在 /etc/nginx/nginx.conf 中将 pid /run/nginx.pid; 替换为 daemon off;
I, [2023-12-06T20:27:04.583466 #1]  INFO -- : 在 /etc/nginx/conf.d/discourse.conf 中将 (?m-ix:upstream[^\}]+\}) 替换为 upstream discourse { server 127.0.0.1:3000; }
I, [2023-12-06T20:27:04.584155 #1]  INFO -- : 在 /etc/nginx/conf.d/discourse.conf 中将 (?-mix:server_name.+$) 替换为 server_name _ ;
I, [2023-12-06T20:27:04.584716 #1]  INFO -- : 在 /etc/nginx/conf.d/discourse.conf 中将 (?-mix:client_max_body_size.+$) 替换为 client_max_body_size $upload_size ;
I, [2023-12-06T20:27:04.585271 #1]  INFO -- : 在 /etc/nginx/nginx.conf 中将 (?-mix:worker_connections.+$) 替换为 worker_connections $nginx_worker_connections ;
I, [2023-12-06T20:27:04.585727 #1]  INFO -- : > echo "done configuring web"
I, [2023-12-06T20:27:04.588861 #1]  INFO -- : 已完成 Web 配置

I, [2023-12-06T20:27:04.589566 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2023-12-06T20:27:04.923204 #1]  INFO -- : 
I, [2023-12-06T20:27:04.927970 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2023-12-06T20:27:10.523499 #1]  INFO -- : 
I, [2023-12-06T20:27:10.524699 #1]  INFO -- : > cd /var/www/discourse && if [ "tests-passed" != "tests-passed" ]; then
  rm -rf app/assets/javascripts/node_modules
fi
I, [2023-12-06T20:27:10.527759 #1]  INFO -- : 
I, [2023-12-06T20:27:10.528364 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
警告 “ > @glint/environment-ember-loose@1.1.0” 有未满足的对等依赖项 “@glimmer/component@^1.1.2”。
警告 “ > @glint/environment-ember-template-imports@1.1.0” 有未满足的对等依赖项 “ember-template-imports@^3.0.0”。
警告 解析字段 “unset-value@2.0.1” 与请求版本 “unset-value@^1.0.0” 不兼容
警告 模式 ["wrap-ansi@^7.0.0"] 试图在与模式 ["wrap-ansi-cjs@npm:wrap-ansi@^7.0.0"] 相同的目标 "/home/discourse/.cache/yarn/v6/npm-wrap-ansi-cjs-7.0.0-67e145cff510a6a6984bdf1152911d69d2eb9e43-integrity/node_modules/wrap-ansi-cjs" 中解压。这可能导致非确定性行为,已跳过。
警告 “ > discourse-markdown-it@1.0.0” 有未满足的对等依赖项 “xss@*”。
警告 “workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @ember/legacy-built-in-components@0.5.0” 的对等依赖项 “ember-source@>= 4.8” 不正确。
警告 “workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @uppy/aws-s3@3.0.6” 的对等依赖项 “@uppy/core@^3.1.2” 不正确。
警告 “workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @uppy/aws-s3-multipart@3.1.3” 的对等依赖项 “@uppy/core@^3.1.2” 不正确。
警告 “workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @uppy/xhr-upload@3.1.1” 的对等依赖项 “@uppy/core@^3.1.2” 不正确。
警告 “workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse-plugins > ember-this-fallback@0.4.0” 有未满足的对等依赖项 “ember-source@^3.28.11 || ^4.0.0”。
警告 “workspace-aggregator-943550ef-70f9-4b27-bc8f-8ecafe854b91 > discourse > @uppy/aws-s3 > @uppy/xhr-upload@3.3.0” 的对等依赖项 “@uppy/core@^3.2.1” 不正确。
I, [2023-12-06T20:29:55.103882 #1]  INFO -- : yarn install v1.22.19
[1/5] 验证 package.json...
[2/5] 解析包...
[3/5] 获取包...
[4/5] 链接依赖项...
[5/5] 构建新包...
$ yarn --cwd app/assets/javascripts $(node -e 'const argv = JSON.parse(process.env.npm_config_argv).original; const passthrough = [`--frozen-lockfile`, `-s`].filter(arg => argv.includes(arg)); console.log(passthrough.join(` `));')
yarn install v1.22.19
[1/4] 解析包...
[2/4] 获取包...
[3/4] 链接依赖项...
[4/4] 构建新包...
$ ./run-patch-package
patch-package 8.0.0
正在应用补丁...
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.2 ✔
ember-cli@5.0.0 ✔
ember-this-fallback@0.4.0 (1 deprecation-name) ✔
ember-this-fallback@0.4.0 (2 themes) ✔
virtual-dom@2.1.1 ✔
78.38s 完成。
150.14s 完成。
yarn cache v1.22.19
成功清除缓存。
13.55s 完成。
I, [2023-12-06T20:29:55.136749 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local deployment true'
I, [2023-12-06T20:29:55.567684 #1]  INFO -- : 
I, [2023-12-06T20:29:55.568701 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle config --local without "development test"'
I, [2023-12-06T20:29:55.820221 #1]  INFO -- : 您正在替换当前的本地 without 值,当前值为 "test:development"

I, [2023-12-06T20:29:55.821029 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4'
I, [2023-12-06T20:30:38.015883 #1]  INFO -- : 正在从 https://rubygems.org/......... 获取 gem 元数据
正在获取 rake 13.1.0
正在安装 rake 13.1.0
使用 builder 3.2.4
使用 erubi 1.12.0
正在获取 racc 1.7.3
使用 crass 1.0.6
使用 minitest 5.20.0
使用 concurrent-ruby 1.2.2
使用 rack 2.2.8
使用 mini_mime 1.1.5
正在获取 timeout 0.4.1
正在获取 public_suffix 5.0.4
正在获取 date 3.3.4
正在安装 timeout 0.4.1
正在安装带有原生扩展的 racc 1.7.3
正在安装带有原生扩展的 date 3.3.4
正在安装 public_suffix 5.0.4
正在获取 aws-eventstream 1.3.0
正在安装 aws-eventstream 1.3.0
使用 jmespath 1.6.2
正在获取 base64 0.2.0
使用 aws-partitions 1.583.0
使用 msgpack 1.7.2
使用 bundler 2.4.13
使用 byebug 11.1.3
使用 cbor 0.5.9.6
正在获取 cgi 0.4.1
正在安装 base64 0.2.0
正在安装带有原生扩展的 cgi 0.4.1
使用 chunky_png 1.4.0
使用 coderay 1.1.3
使用 colored2 4.0.0
使用 connection_pool 2.4.1
使用 openssl 3.2.0
使用 cppjieba_rb 0.4.2
正在获取 google-protobuf 3.25.1 (x86_64-linux)
正在安装 google-protobuf 3.25.1 (x86_64-linux)
使用 diffy 3.4.2
使用 digest 3.1.1
使用 discourse-fonts 0.0.9
使用 email_reply_trimmer 0.1.13
正在获取 excon 0.105.0
正在安装 excon 0.105.0
使用 execjs 2.9.1
使用 exifr 1.4.0
使用 faraday-net_http 3.0.2
使用 ruby2_keywords 0.0.5
使用 fast_blank 1.0.1
使用 fast_xs 0.8.0
使用 fastimage 2.2.7
使用 ffi 1.16.3
使用 fspath 3.1.2
使用 gc_tracer 1.5.1
使用 guess_html_encoding 0.0.11
使用 hana 1.3.7
使用 hashie 5.0.0
使用 highline 2.1.0
使用 htmlentities 4.3.4
使用 http_accept_language 2.1.1
使用 image_size 3.3.0
使用 in_threads 1.6.0
使用 progress 3.6.0
正在获取 json 2.7.1
正在安装带有原生扩展的 json 2.7.1
正在获取 regexp_parser 2.8.3
正在安装 regexp_parser 2.8.3
正在获取 unf_ext 0.0.9.1
正在安装带有原生扩展的 unf_ext 0.0.9.1
使用 jwt 2.7.1
使用 kgio 2.11.4
使用 libv8-node 18.16.0.0 (x86_64-linux)
使用 method_source 1.0.0
使用 thor 1.3.0
使用 zeitwerk 2.6.12
使用 logstash-event 1.2.02
正在获取 logster 2.13.1
正在安装 logster 2.13.1
使用 lru_redux 1.1.0
使用 lz4-ruby 0.3.3
使用 maxminddb 0.1.22
使用 memory_profiler 1.0.1
使用 redis 4.8.1
使用 mini_sql 1.5.0
使用 multi_json 1.15.0
使用 multi_xml 0.6.0
使用 mustache 1.1.1
正在获取 uri 0.13.0
正在安装 uri 0.13.0
正在获取 nio4r 2.7.0
正在安装带有原生扩展的 nio4r 2.7.0
使用 version_gem 1.1.3
使用 oj 3.16.1
使用 optimist 3.1.0
使用 pg 1.5.4
使用 raindrops 0.20.1
使用 rchardet 1.8.0
使用 rexml 3.2.6
使用 rinku 2.0.6
使用 rotp 6.3.0
使用 rqrcode_core 1.2.0
使用 rubyzip 2.3.2
使用 sshkey 3.0.0
使用 stackprof 0.2.25
使用 i18n 1.14.1
使用 tzinfo 2.0.6
使用 rack-test 2.1.0
使用 request_store 1.5.1
使用 message_bus 4.3.8
使用 rack-mini-profiler 3.1.1
使用 rack-protection 3.1.0
使用来自 https://github.com/rails/sprockets (at 3.x@f4d3dae) 的 sprockets 3.7.2
正在获取 net-protocol 0.2.2
正在安装 net-protocol 0.2.2
使用 aws-sigv4 1.5.0
使用 addressable 2.8.5
正在获取 bootsnap 1.17.0
正在安装带有原生扩展的 bootsnap 1.17.0
使用 openssl-signature_algorithm 1.3.0
正在获取 sass-embedded 1.66.1 (x86_64-linux-gnu)
正在安装 sass-embedded 1.66.1 (x86_64-linux-gnu)
使用 uglifier 4.2.0
正在获取 faraday 2.7.12
正在安装 faraday 2.7.12
使用 mini_suffix 0.3.3
使用 omniauth 1.9.2
使用 image_optim 0.31.3
正在获取 nokogiri 1.15.5 (x86_64-linux)
正在安装 nokogiri 1.15.5 (x86_64-linux)
正在获取 web-push 3.0.1
正在安装 web-push 3.0.1
使用 mini_racer 0.8.0
使用 pry 0.14.2
使用 logstash-logger 0.26.1
使用 sidekiq 6.5.12
使用 redis-namespace 1.11.0
正在获取 net-http 0.4.0
使用 unf 0.1.4
正在安装 net-http 0.4.0
使用 oauth-tty 1.0.5
使用 snaky_hash 2.0.1
正在获取 rbtrace 0.5.0
使用 rss 0.3.0
使用 unicorn 6.1.0
使用 rqrcode 2.2.0
使用 activesupport 7.0.7
使用 tzinfo-data 1.2023.3
使用 net-pop 0.1.2
使用 net-smtp 0.4.0
使用 aws-sdk-core 3.130.2
使用 css_parser 1.16.0
使用 cose 1.3.0
正在获取 dartsass-ruby 3.0.2
正在安装带有原生扩展的 rbtrace 0.5.0
正在安装 dartsass-ruby 3.0.2
使用 faraday-retry 2.2.0
使用 oauth2 1.4.11
正在获取 loofah 2.22.0
正在安装 loofah 2.22.0
使用 ruby-readability 0.7.0
使用 sanitize 6.1.0
使用 rtlcss 0.2.1
使用 pry-byebug 3.10.1
使用 pry-rails 0.3.9
使用 mini_scheduler 0.16.0
使用 simpleidn 0.2.1
使用 oauth 1.1.0
使用 rails-dom-testing 2.2.0
使用 globalid 1.2.1
使用 activemodel 7.0.7
使用 aws-sdk-kms 1.56.0
使用 aws-sdk-sns 1.53.0
使用 omniauth-oauth2 1.7.3
使用 rails-html-sanitizer 1.6.0
正在获取 json_schemer 2.1.1
正在安装 json_schemer 2.1.1
使用 omniauth-oauth 1.2.0
使用 actionview 7.0.7
使用 activejob 7.0.7
使用 active_model_serializers 0.8.4
使用 activerecord 7.0.7
使用 aws-sdk-s3 1.114.0
使用 omniauth-facebook 9.0.0
使用 omniauth-github 1.4.0
使用 omniauth-google-oauth2 0.8.2
使用 omniauth-twitter 1.4.0
使用 actionpack 7.0.7
使用 actionview_precompiler 0.3.0
使用 discourse-seed-fu 2.3.12
使用 railties 7.0.7
使用 sprockets-rails 3.4.2
使用 lograge 0.14.0
使用 rails_failover 2.0.1
使用 rails_multisite 5.0.0
使用 puma 6.4.0
正在获取 net-imap 0.4.7
正在安装 net-imap 0.4.7
使用 mail 2.8.1
使用 actionmailer 7.0.7
Bundle 完成!135 个 Gemfile 依赖项,现已安装 170 个 gems。
未安装 'development' 和 'test' 组中的 gems。
Bundled gems 已安装到 `./vendor/bundle`
I, [2023-12-06T20:30:38.029906 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2023-12-06T20:30:42.946058 #1]  INFO -- : docker_manager 已是最新的兼容版本

I, [2023-12-06T20:30:42.947529 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
I, [2023-12-06T20:30:52.368108 #1]  INFO -- : 
I, [2023-12-06T20:30:52.370735 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Node.js heap_size_limit (488.25) 小于 1024MB。设置 --max-old-space-size=1024。
Node.js heap_size_limit (488.25) 小于 2048MB。禁用 Webpack 并行化,设置 JOBS=0 以节省内存。
110:M 06 Dec 2023 20:31:39.033 * 100 changes in 300 seconds. Saving...
110:M 06 Dec 2023 20:31:39.037 * Background saving started by pid 3264
3264:C 06 Dec 2023 20:31:39.055 * DB saved on disk
3264:C 06 Dec 2023 20:31:39.056 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB
110:M 06 Dec 2023 20:31:39.138 * Background saving terminated with success

<--- 最近几次 GC --->

[3250:0x75de170]   713299 ms: Scavenge 941.1 (1032.4) -> 939.7 (1032.4) MB, 11.8 / 0.0 ms  (average mu = 0.392, current mu = 0.720) allocation failure; 
[3250:0x75de170]   713376 ms: Scavenge 941.4 (1032.4) -> 940.0 (1032.4) MB, 13.1 / 0.0 ms  (average mu = 0.392, current mu = 0.720) allocation failure; 
[3250:0x75de170]   713474 ms: Scavenge 941.9 (1032.4) -> 940.4 (1036.4) MB, 19.8 / 0.0 ms  (average mu = 0.392, current mu = 0.720) allocation failure; 
<--- JS 堆栈跟踪 --->

致命错误:达到堆限制 分配失败 - JavaScript 堆内存不足
 1: 0xb83f50 node::Abort() [ember]
 2: 0xa94834  [ember]
 3: 0xd647c0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [ember]
 4: 0xd64b67 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [ember]
 5: 0xf42265  [ember]
 6: 0xf5474d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [ember]
 7: 0xf2ee4e v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [ember]
 8: 0xf30217 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [ember]
 9: 0xf113ea v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [ember]
10: 0x12d674f v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [ember]
11: 0x17035b9  [ember]
已中止 (核心转储)
错误 命令以退出代码 134 失败。
I, [2023-12-06T20:42:53.261307 #1]  INFO -- : yarn run v1.22.19
$ /var/www/discourse/app/assets/javascripts/node_modules/.bin/ember build
正在构建
环境:development
警告:ember-test-selectors:您正在使用不受支持的 ember-cli-babel 版本。data-test 属性不会自动从您的 JS 代码中移除。
正在构建... 
...[ConfigLoader]
...[Babel: discourse-widget-hbs > applyPatches]
...[Babel: ember-source > applyPatches]
...[ember.js]
...[Babel: discourse-common > applyPatches]
...[Babel: truth-helpers > applyPatches]
...[Babel: @ember/legacy-built-in-components > applyPatches]
...[Babel: @ember/render-modifiers > applyPatches]
...[Babel: @ember/test-waiters > applyPatches]
...[Babel: @embroider/util > applyPatches]
...[Babel: dialog-holder > applyPatches]
...[Babel: ember-this-fallback > applyPatches]
...[Babel: ember-cached-decorator-polyfill > applyPatches]
...[Babel: ember-exam > applyPatches]
...[Babel: ember-functions-as-helper-polyfill > applyPatches]
...[Babel: ember-resize-observer-service > applyPatches]
...[Babel: ember-router-service-refresh-polyfill > applyPatches]
...[Babel: float-kit > applyPatches]
...[Babel: select-kit > applyPatches]
...[@embroider/compat/app]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
info 访问 https://yarnpkg.com/en/docs/cli/run 以获取有关此命令的文档。

I, [2023-12-06T20:42:53.304072 #1]  INFO -- : 正在终止异步进程
I, [2023-12-06T20:42:53.306771 #1]  INFO -- : 向 HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 41 发送 INT
2023-12-06 20:42:53.307 UTC [41] LOG:  received fast shutdown request
I, [2023-12-06T20:42:53.309208 #1]  INFO -- : 向 exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 110 发送 TERM
110:signal-handler (1701895373) Received SIGTERM scheduling shutdown...
2023-12-06 20:42:53.311 UTC [41] LOG:  aborting any active transactions
2023-12-06 20:42:53.331 UTC [41] LOG:  background worker "logical replication launcher" (PID 50) exited with exit code 1
2023-12-06 20:42:53.335 UTC [45] LOG:  shutting down
110:M 06 Dec 2023 20:42:53.367 # User requested shutdown...
110:M 06 Dec 2023 20:42:53.369 * Saving the final RDB snapshot before exiting.
2023-12-06 20:42:53.379 UTC [41] LOG:  database system is shut down
110:M 06 Dec 2023 20:42:53.392 * DB saved on disk
110:M 06 Dec 2023 20:42:53.393 # Redis is now ready to exit, bye bye...


失败
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' 失败,返回 #<Process::Status: pid 3186 exit 134>
失败位置:/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec 失败,参数为 {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
bootstrap 以退出代码 134 失败
** 引导失败 ** 请向上滚动并查找更早的错误消息,可能不止一个。
./discourse-doctor 可能有助于诊断问题。
ce5db16b179d8bbe8be1cc8898c2d89a9f8259e5f4f6d6bbeda8e6fa69723aa5
==================== 重建日志结束 ====================
应用重建失败。

正在检查您的域名 . . .

连接到 forum.jimclair.com 成功。
您可能应该移除任何非标准插件并重建。
尝试正在尝试重启现有容器。 . . 
检测到 x86_64 架构。

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=forum.jimclair.com -e DISCOURSE_DEVELOPER_EMAILS=REDACTED  -e DISCOURSE_SMTP_ADDRESS=in-v3.mailjet.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=495e2921d498a8d1d5ebb0afaccd7b1e -e DISCOURSE_SMTP_PASSWORD=REDACTED  -e DISCOURSE_SMTP_DOMAIN=forum.jimclair.com -e DISCOURSE_NOTIFICATION_EMAIL=noreply@forum.jimclair.com -e LETSENCRYPT_ACCOUNT_EMAIL=REDACTED  -h JimClairDiscourse-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:43:18:d7:5e:e0 local_discourse/app /sbin/boot
无法在本地找到镜像 'local_discourse/app:latest'
docker: 来自守护进程的报错响应:拉取访问被拒绝,仓库 local_discourse/app 不存在或可能需要 'docker login':拒绝:请求的资源访问被拒绝。
请参阅 'docker run --help'。
容器重启失败。


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git

未检测到非官方插件。

请参阅官方列表:https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb

========================================
forum.jimclair.com 上的 Discourse 版本:未找到
localhost 上的 Discourse 版本:未找到

==================== MEMORY INFORMATION ====================
操作系统:Linux
内存 (MB):998

               total        used        free      shared  buff/cache   available
Mem:             952         363         254           3         493         589
Swap:           2047          87        1960

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        24G  7.7G   16G  33% /

==================== DISK INFORMATION ====================
Disk /dev/loop0: 73.9 MiB, 77492224 bytes, 151352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 180.94 MiB, 189730816 bytes, 370568 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 40.86 MiB, 42840064 bytes, 83672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: F62235F3-8D92-4E44-9154-0DCF72CBCB9D

Device       Start      End  Sectors  Size Type
/dev/vda1  2099200 52428766 50329567   24G Linux filesystem
/dev/vda14    2048    10239     8192    4M BIOS boot
/dev/vda15   10240   227327   217088  106M EFI System
/dev/vda16  227328  2097152  1869825  913M Linux extended boot

分区表条目未按磁盘顺序排列。


Disk /dev/vdb: 466 KiB, 477184 bytes, 932 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
要进行更可靠的测试,请从 http://www.mail-tester.com/ 获取一个地址
正在发送邮件至 REDACTED  . . 


==================== DONE! ====================

你可以使用以下命令查看此脚本的输出:
LESS=-Ri less /tmp/discourse-debug.txt

我认为你遇到了内存问题。作为一种变通方法,你可以暂时调整你的 droplet 的大小来完成重建,然后再将其缩小,看看是否有帮助?

粗略地说,您有 1G RAM 和 2G 交换空间,从日志中我们看到 ember 内存不足。您有 16G 可用磁盘空间——我建议添加一个 2G 的交换文件再试一次。

编辑:帖子交叉了。确实,临时升级更多 RAM 是另一种方法。请务必小心地进行升级,以便您可以返回到更便宜的配置——通常这意味着保持磁盘大小不变。

编辑:您应该设置一些内核设置来减少虚拟内存的消耗。请参阅
MKJ 的主观 Discourse 部署配置

除了常规的交换文件,我建议您研究一下 zram,它允许您为压缩的交换空间设置一部分 RAM。Debian 包为其设置了比常规交换更高的优先级,因此它有效地充当了由 RAM 支持的非常快速的中间交换文件,并且透明压缩意味着空间节省高达 5 倍(即,这个非常快速的交换文件可以容纳正常 RAM 通常能容纳的 5 倍)。

这似乎有悖常理,但效果非常好。

我曾测试过这个确切的设置(1GB RAM + 2GB SWAP),在 Ember 构建阶段它会失败 50% 的时间。

你可以继续尝试,或者升级到 12 美元的 2GB RAM 实例。

抄送 @david,这正是我本周早些时候和你讨论过的。

链接到这个类似的 - Upgrade from 3.2.0.beta3-dev to 3.2.0.beta3 failed due to out of memory - #9 by JammyDodger

我最近有两个网站配备了 8GB RAM 且没有交换空间,它们也像这样失败了。(至少在某个地方它以 exit 137 失败)。在这两种情况下,我都添加了 2GB 的交换空间,它们就成功了。

希望——对我来说——这可以被视为一个错误?