启动器失败:第334行:忽略了NULL字节

Web-app 的当前重建因以下错误而失败:

root@docker2:/var/discourse# ./launcher stop web_only && ./launcher rebuild data && ./launcher rebuild web_only
x86_64 arch detected.
+ /usr/bin/docker stop -t 600 web_only
web_only
x86_64 arch detected.
Ensuring launcher is up to date
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 data
data
./launcher: Zeile 334: Warnung: Kommandoersetzung: NULL-Byte in der Eingabe ignoriert.
2.0.20240825-0027: Pulling from discourse/base
Digest: sha256:6de68cb49198b5281f79ed9401b3fe818c854d220dcf0238549fe2f2adb19146
Status: Image is up to date for discourse/base:2.0.20240825-0027
docker.io/discourse/base:2.0.20240825-0027
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-10-04T15:54:02.326983 #1]  INFO -- : Reading from stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:54:in `split': invalid byte sequence in UTF-8 (ArgumentError)

        split = conf.split("_FILE_SEPERATOR_")
                           ^^^^^^^^^^^^^^^^^^
        from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:54:in `run'
        from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/bin/pups:9:in `<top (required)>'
        from /usr/local/bin/pups:25:in `load'
        from /usr/local/bin/pups:25:in `<main>'
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

有什么办法可以解决这个问题吗?我的论坛在这次重新部署后目前无法访问 :worried:

1 个赞

您应该能够使用以下命令恢复它:

./launcher start app

这将重新启动旧容器。

我不知道具体可能是什么问题,但可能是回归。

在这种情况下,web_only 和 data 是分开的容器,web_only 容器的启动失败,并出现以下错误:

oot@docker2:/var/discourse# ./launcher start web_only
x86_64 arch detected.

starting up existing container
+ /usr/bin/docker start web_only
Error response from daemon: Cannot link to a non running container: /data AS /web_only/data
Error: failed to start containers: web_only

也许在这种情况下我需要通过 docker 手动启动,因为数据库是在另一台机器上的外部数据库,请参见 web_only yaml 中的这段代码:

 ## connect to central postgres database
  DISCOURSE_DB_SOCKET: ''
  DISCOURSE_DB_USERNAME: discourse
  DISCOURSE_DB_PASSWORD: xxxxxxxxxx
  DISCOURSE_DB_HOST: 10.10.xx.xx
  DISCOURSE_REDIS_HOST: data

抱歉。我不知道那部分(或者可能没仔细看)。

那么你需要

./launcher destroy web_only;./launcher start web_only

除非你运行了清理操作删除了容器,那样的话你可能就麻烦了。

那么我对于看到“无法链接”的错误感到惊讶。我只在它试图使用同一台机器上的 docker link 与另一个容器通信时看到过。

哦!是的,是 redis 它无法连接。你有一个包含 redis 的 data 容器,对吧?在给出提示的情况下,destroy start 应该可以工作。

@pfaffman 谢谢,这样解决了。我忘了数据容器也提供 redis 缓存功能——但总之,现在容器又在运行了。

我们能用 launcher 脚本第 334 行的 bootstrap 错误做什么?我以前从未见过这个错误。launcher_go/v2 可以作为替代品使用吗?

330 set_template_info() {
    331     templates=$(find_templates $config_file)
    332
    333     arrTemplates=(${templates// / })
    334     config_data=$(cat $config_file)
    335
    336     input="hack: true"
    337
    338     for template in "${arrTemplates[@]}"
    339     do
    340       [ ! -z $template ] && {
    341         input="$input _FILE_SEPERATOR_ $(cat $template)"
    342       }
    343     done
    344
1 个赞

这不是错误,只是一个警告

这是错误。

在我看来,您的 web-app.yml 可能已损坏。

2 个赞

是的:

root@docker2:/var/discourse/containers# yamllint web_only.yml
web_only.yml
  5:81      error    行太长(115 > 80 个字符)  (line-length)
  8:1       warning  缺少文档开头“---”  (document-start)
  14:4      warning  注释中缺少起始空格  (comments)
  14:3      warning  注释的缩进与内容不匹配  (comments-indentation)
  15:4      warning  注释中缺少起始空格  (comments)
  18:81     error    行太长(85 > 80 个字符)  (line-length)
  36:3      warning  注释的缩进与内容不匹配  (comments-indentation)
  37:4      warning  注释中缺少起始空格  (comments)
  43:81     error    行太长(85 > 80 个字符)  (line-length)
  44:81     error    行太长(87 > 80 个字符)  (line-length)
  58:81     error    行太长(84 > 80 个字符)  (line-length)
  67:81     error    行太长(90 > 80 个字符)  (line-length)
  68:4      warning  注释中缺少起始空格  (comments)
  77:81     error    行太长(83 > 80 个字符)  (line-length)
  79:4      warning  注释中缺少起始空格  (comments)
  99:81     error    行太长(81 > 80 个字符)  (line-length)
  110:81    error    行太长(81 > 80 个字符)  (line-length)
  117:81    error    行太长(81 > 80 个字符)  (line-length)
  126:43    error    末尾有空格  (trailing-spaces)
  151:4     warning  注释中缺少起始空格  (comments)
  154:4     warning  注释中缺少起始空格  (comments)
  155:4     warning  注释中缺少起始空格  (comments)
  156:4     warning  注释中缺少起始空格  (comments)
  156:81    error    行太长(131 > 80 个字符)  (line-length)

确实需要清理一下 :wink: