Verstehe ich richtig, dass ein manuelles rebuild app die Aktualisierung durchführt und somit die Notwendigkeit umgeht, auf diese Upgrade-Seite zuzugreifen – aber der Fehler immer noch behoben werden muss? Gut, dann ignoriere ich das vorerst…
Da ich einen manuellen Neubau durchgeführt habe und die Upgrade-Seite immer noch diesen Fehler anzeigt… aber /logs gibt mir Folgendes:
Standardinstallation, aber ich gebe zu, die Seite läuft seit 2018, soweit ich mich erinnere, aber zumindest ist sie Docker-basiert und fühlt sich wie eine Standardeinrichtung an. Wie gesagt, bisher hat alles wie erwartet funktioniert.
Ich habe es erneut neu kompiliert, die Berechtigungen korrigiert und ein paar git config --global --add safe.directory …-Befehle ausgeführt, aber die /upgrade-Seite zeigt immer noch einen Fehler an und das Protokoll sagt:
Wenn man weiter gräbt, fehlte bei der Art und Weise, wie wir die Plugins installiert haben, der Teil sudo -E -u discourse bei den git clone …-Aufrufen in containers/app.yml. Außerdem hatte die vorhandene Zeile docker_manager dies nie.
Huh! Das ist sehr seltsam und würde den Fehler definitiv erklären. Es sieht so aus, als ob selbst das .git von Discourse-Core fehlt (da chat/poll/etc. keine URL haben).
Können Sie den Ausschnitt von app.yml teilen, in dem die Plugins installiert sind?
Das ist auch ein wenig seltsam:
Es deutet darauf hin, dass Sie ein Plugins-Verzeichnis innerhalb Ihres Plugins-Verzeichnisses haben
Manchmal, wenn Leute feststellen, dass kein .git-Unterverzeichnis vorhanden ist, liegt das daran, dass jemand eine einfache Kopie von einem Ort zum anderen gemacht hat und die Kopie die Dotfiles ausgelassen hat. Dies würde bei einer Standardinstallation niemals passieren, könnte aber dort vorkommen, wo es eine gewisse Vorgeschichte von Leuten gibt, die Dinge tun, von denen sie glauben, sie zu verstehen. (Was ich nett meine, aber es kann zu Fehlern führen.)
Es gab ein zusätzliches mkdir plugins als ersten Befehl, deshalb existierte der (leere) plugins-Ordner. Ich habe diesen Überrest aus den letzten Jahren entfernt…
Der Ordner für die Pakete, die gemäß der obigen app.yml installiert wurden, enthält alle einen .git-Ordner.
Um die Remote-URLs aufzulisten… als discourse-Benutzer:
discourse@ocean-app:/var/www/discourse/plugins$ for d in *; do echo "$d: $(git -C $d config --get remote.origin.url)"; done
chat:
discourse-chat-integration: https://github.com/discourse/discourse-chat-integration.git
discourse-details:
discourse-lazy-videos:
discourse-local-dates:
discourse-narrative-bot:
discourse-presence:
discourse-solved: https://github.com/discourse/discourse-solved.git
docker_manager: https://github.com/discourse/docker_manager.git
poll:
styleguide:
Als root-Benutzer:
root@ocean-app:/var/www/discourse/plugins# for d in *; do echo "$d: $(git -C $d config --get remote.origin.url)"; done
chat: https://github.com/discourse/discourse.git
discourse-chat-integration:
discourse-details: https://github.com/discourse/discourse.git
discourse-lazy-videos: https://github.com/discourse/discourse.git
discourse-local-dates: https://github.com/discourse/discourse.git
discourse-narrative-bot: https://github.com/discourse/discourse.git
discourse-presence: https://github.com/discourse/discourse.git
discourse-solved:
docker_manager: https://github.com/discourse/docker_manager.git
poll: https://github.com/discourse/discourse.git
styleguide: https://github.com/discourse/discourse.git
Mein Verdacht: Berechtigungen sind total im Eimer. Sieht das korrekt aus (innerhalb des Containers)?
root@ocean-app:/var/www/discourse# ls -la
total 508
drwxr-xr-x 1 root root 4096 Aug 10 15:38 .
drwxr-xr-x 1 root root 4096 Jul 11 00:33 ..
drwxr-xr-x 1 root root 4096 Jul 11 00:34 app
drwxr-xr-x 1 root root 4096 Aug 10 14:36 bin
-rw-r--r-- 1 root root 316 Aug 10 14:36 Brewfile
drwxr-xr-x 1 root root 4096 Jul 11 00:34 .bundle
drwxr-xr-x 1 root root 4096 Aug 10 14:47 config
-rw-r--r-- 1 root root 304 Aug 10 14:36 config.ru
-rw-r--r-- 1 root root 1303 Aug 10 14:36 CONTRIBUTING.md
-rw-r--r-- 1 root root 2347 Aug 10 14:36 COPYRIGHT.md
lrwxrwxrwx 1 root root 10 Aug 10 14:36 d -> bin/docker
drwxr-xr-x 1 root root 4096 Aug 10 14:36 db
drwxr-xr-x 1 root root 4096 Aug 10 14:36 .devcontainer
-rw-r--r-- 1 root root 1315 Aug 10 14:36 discourse.sublime-project
drwxr-xr-x 1 root root 4096 Aug 10 14:36 docs
drwxr-xr-x 1 root root 4096 Aug 10 14:36 documentation
-rw-r--r-- 1 root root 305 Aug 10 14:36 .editorconfig
-rw-r--r-- 1 root root 334 Aug 10 14:36 .eslintignore
-rw-r--r-- 1 root root 1061 Aug 10 14:36 .eslintrc
-rw-r--r-- 1 root root 7146 Aug 10 14:36 Gemfile
-rw-r--r-- 1 root root 15678 Aug 10 14:36 Gemfile.lock
drwxr-xr-x 1 root root 4096 Aug 10 14:36 .git
-rw-r--r-- 1 root root 852 Aug 10 14:36 .gitattributes
-rw-r--r-- 1 root root 2205 Aug 10 14:36 .git-blame-ignore-revs
-rw-r--r-- 1 root root 272 Aug 10 15:38 .gitconfig
drwxr-xr-x 1 root root 4096 Aug 10 14:36 .github
-rw-r--r-- 1 root root 1282 Aug 10 14:36 .gitignore
drwxr-xr-x 1 root root 4096 Aug 10 14:36 images
-rw-r--r-- 1 root root 279 Aug 10 14:36 jsconfig.base.json
-rw-r--r-- 1 root root 432 Aug 10 14:36 .jsdoc
-rw-r--r-- 1 root root 1937 Aug 10 14:36 lefthook.yml
drwxr-xr-x 1 root root 12288 Aug 10 14:36 lib
-rw-r--r-- 1 root root 1470 Aug 10 14:36 .licensed.yml
-rw-r--r-- 1 root root 375 Aug 10 14:36 .licensee.json
-rw-r--r-- 1 root root 18092 Aug 10 14:36 LICENSE.txt
drwxr-xr-x 1 root root 4096 Aug 10 14:36 log
drwxr-xr-x 1 root root 20480 Aug 10 14:37 node_modules
-rw-r--r-- 1 root root 21 Aug 10 14:36 .npmrc
-rw-r--r-- 1 root root 3114 Aug 10 14:36 package.json
drwxr-xr-x 1 discourse discourse 4096 Aug 16 08:44 plugins
-rw-r--r-- 1 root root 728 Aug 10 14:36 .prettierignore
-rw-r--r-- 1 root root 283 Aug 10 14:36 .prettierrc
drwxr-xr-x 1 root root 4096 Aug 14 00:42 public
-rwxr-xr-x 1 root root 305 Aug 10 14:36 Rakefile
-rw-r--r-- 1 root root 6753 Aug 10 14:36 README.md
-rw-r--r-- 1 root root 25 Aug 10 14:36 .rspec
-rw-r--r-- 1 root root 246 Aug 10 14:36 .rspec_parallel
-rw-r--r-- 1 root root 290 Aug 10 14:36 .rubocop.yml
-rw-r--r-- 1 root root 10 Aug 10 14:36 .ruby-gemset.sample
-rw-r--r-- 1 root root 6 Aug 10 14:36 .ruby-version.sample
drwxr-xr-x 1 root root 4096 Aug 10 14:36 script
drwxr-xr-x 1 root root 4096 Aug 10 14:36 spec
-rw-r--r-- 1 root root 66 Aug 10 14:36 .streerc
-rw-r--r-- 1 root root 1054 Aug 10 14:36 .template-lintrc.js
drwxr-xr-x 1 root root 4096 Aug 10 14:36 test
drwxr-xrwx 1 discourse discourse 4096 Aug 10 15:16 tmp
-rw-r--r-- 1 root root 2575 Aug 10 14:36 translator.yml
drwxr-xr-x 1 root root 4096 Jul 11 00:34 vendor
drwxr-xr-x 1 root root 4096 Aug 10 14:36 .vscode-sample
-rw-r--r-- 1 root root 204458 Aug 10 14:36 yarn.lock
Was ist die erwartete Einrichtung von Besitzern/Berechtigungen?