Beta/tests-passed-Sample-Container starten nicht

Bevor Sie sich auf diese Reise mit mir begeben, beachten Sie bitte, dass diese Fehlermeldung zwar bereits zweimal in diesem Forum erwähnt wurde (eins und zwei), die Lösung „Datencontainer neu erstellen“ jedoch nicht funktioniert hat. Ich arbeite mit komplett leeren Daten und lösche zwischen den Versuchen alle Container/Volumes/Speicherordner.

Bitte beachten Sie auch, dass ich meine Tests auf den bereitgestellten Beispieldateien basiere. Es handelt sich nicht um ein Plugin, ich habe versucht, alle Plugins zu entfernen.


Ich habe Probleme, leere Container für die neuesten tests-passed- und beta-Branches zu starten. Stable funktioniert wie erwartet. Der Fehler tritt mit standalone oder web-only auf (nach dem Start von data, natürlich).

Um Konfigurationsfehler auszuschließen, habe ich folgende Schritte unternommen:

  • Die Datei samples/standalone.yml wurde in containers/ kopiert.
  • Nur die folgenden Dinge in der Datei wurden geändert:
    • SMTP-Adresse wurde auf einen Dummy-Wert geändert.
    • Discourse-Adresse wurde auf einen Dummy-Wert geändert.
    • Der Speicherort der geteilten Daten wurde geändert.
    • 443 wurde entfernt und die Port 80-Zuordnung geändert. Hier ist das Ergebnis standalone.yml
    • ./laucher rebuild standalone wurde ausgeführt. Hier sind die vollständigen Protokolle rebuilding_standalone.txt

Und ich erhalte folgende Fehlermeldung:

RubyZip 3.0 is coming!
**********************

Die öffentliche API einiger Rubyzip-Klassen wurde modernisiert, um benannte Parameter für optionale Argumente zu verwenden. Bitte überprüfen Sie Ihre Verwendung der folgenden Klassen:
  * `Zip::File`
  * `Zip::Entry`
  * `Zip::InputStream`
  * `Zip::OutputStream`

Bitte stellen Sie sicher, dass Ihre Gemfiles und .gemspecs ausreichend restriktiv sind, um unerwartete Fehler bei der Veröffentlichung von 3.0 zu vermeiden (z. B. ~> 2.3.0).
Weitere Informationen finden Sie unter https://github.com/rubyzip/rubyzip. Das Changelog listet auch andere Verbesserungen und Fehlerbehebungen auf, die seit Version 2.3.0 implementiert wurden.

I, [2022-07-24T01:58:05.415957 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake plugin:pull_compatible_all'
bundler: failed to load command: rake (/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/rake)
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/runtime.rb:308:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.11.0. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/runtime.rb:25:in `block in setup'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/spec_set.rb:140:in `each'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/spec_set.rb:140:in `each'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/runtime.rb:24:in `map'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/runtime.rb:24:in `setup'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler.rb:162:in `setup'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/setup.rb:20:in `block in <top (required)>'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/ui/shell.rb:136:in `with_level'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/ui/shell.rb:88:in `silence'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/setup.rb:20:in `<top (required)>'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:56:in `require_relative'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:56:in `kernel_load'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:23:in `run'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli.rb:483:in `exec'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli.rb:31:in `dispatch'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli.rb:25:in `start'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/exe/bundle:48:in `block in <top (required)>'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/exe/bundle:36:in `<top (required)>'
	from /usr/local/bin/bundle:23:in `load'
	from /usr/local/bin/bundle:23:in `<main>'
I, [2022-07-24T01:58:05.702191 #1]  INFO -- : 
I, [2022-07-24T01:58:05.702665 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
bundler: failed to load command: rake (/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/rake)
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/runtime.rb:308:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.11.0. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/runtime.rb:25:in `block in setup'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/spec_set.rb:140:in `each'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/spec_set.rb:140:in `each'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/runtime.rb:24:in `map'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/runtime.rb:24:in `setup'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler.rb:162:in `setup'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/setup.rb:20:in `block in <top (required)>'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/ui/shell.rb:136:in `with_level'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/ui/shell.rb:88:in `silence'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/setup.rb:20:in `<top (required)>'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:56:in `require_relative'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:56:in `kernel_load'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:23:in `run'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli.rb:483:in `exec'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli.rb:31:in `dispatch'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli.rb:25:in `start'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/exe/bundle:48:in `block in <top (required)>'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
	from /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/exe/bundle:36:in `<top (required)>'
	from /usr/local/bin/bundle:23:in `load'
	from /usr/local/bin/bundle:23:in `<main>'
I, [2022-07-24T01:58:05.953429 #1]  INFO -- : 

Ich habe auch den Zwei-Container-Ansatz mit data und web_only ausprobiert. Web only hat das gleiche Problem.

Zwischen jedem Versuch stoppe und entferne ich alle Container und auch alle Datenordner.

Der Stable-Branch funktioniert einwandfrei. Ich glaube nicht, dass dies erwartet wird.


Um Kontext zu geben, befinde ich mich jetzt in einer ziemlich schlechten Situation.
Ich muss dringend meine Discourse-Installation vom aktuellen Server auf einen neuen Server migrieren, da der aktuelle Server in wenigen Tagen abgeschaltet wird.
Der aktuelle Server ist in 2.9.0.beta7. Ich kann einen neuen Server in 2.8.6 starten, aber ich kann kein Backup vom aktuellen Server auf den neuen Server anwenden, da dies ein Downgrade ist. Und ich kann keinen neuen leeren Server unter 2.9.0.beta7 starten, da dies nur den oben genannten Fehler ergibt.
Mein Datenordner auf dem aktuellen Server ist groß genug, ich habe nicht genug Speicherplatz auf der Festplatte, um ihn zu komprimieren und irgendwohin zu kopieren; selbst wenn ich das täte, würde ich annehmen, dass es Konsequenzen hätte, Daten aus einer neueren Betaversion in eine ältere Version zu verwenden. Ich habe auch versucht, den aktuellen Server zu ‘downgraden’, nur für den Fall, aber ich weiß, dass dies nicht unterstützt wird und es sowieso nicht funktioniert hat.

Warum müssen Sie ein Downgrade durchführen? Warum können Sie nicht sicherstellen, dass der Zielhost der aktuellste ist?

2 „Gefällt mir“

Ich möchte kein Downgrade durchführen. Aber ich kann keinen neuen Server auf 2.9.0.beta7 starten, basierend auf der Fehlermeldung, die ich in diesem Beitrag gepostet habe. Ich kann nur einen neuen Server auf 2.8.6 starten. Ich habe mehrere verschiedene Konfigurationen ausprobiert, basierend auf den Beispieldateien und meinen eigenen Dateien, und weder beta noch tests-passed starten. Ich bin mir nicht sicher, ob diese Informationen im ersten Beitrag, in der Containerdatei oder in den Protokolldateien klar sind.

Ganz fair betrachtet, muss ich nur sicherstellen, dass ich meine Daten von einem Server auf einen anderen übertragen kann. Es spielt keine Rolle, welche Version genau, aber ich brauche einen neuen Server, der läuft, und muss die alten Daten auf den neuen Server übertragen.

Der alte Server läuft derzeit auf 2.9.0.beta7. Ich brauche also entweder einen neuen Server, der auf der neuesten Version starten kann (was nicht funktioniert), oder ich brauche eine Möglichkeit, Daten auf eine neue 2.8.6 zu übertragen, da dies die einzige Version ist, auf der ich ihn starten konnte.

1 „Gefällt mir“

Entschuldigung, jetzt verstehe ich. Muss ich mich also auf diesen Fehler konzentrieren?

Idealerweise ja. Den neuen Server mit der neuesten Version zu bekommen, wäre für mich am einfachsten und unkompliziertesten.

Aber wenn das aus irgendeinem Grund nicht machbar ist, wäre ich auch daran interessiert, wenn es eine andere Umgehungslösung gäbe, die ich verwenden könnte. Ich bin nicht in der Position, puristisch in Bezug auf Versionen zu sein.

Außerdem, falls es hilft, hier sind die Docker-Infos auf dem Server:

# docker info
Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 2
  Running: 0
  Paused: 0
  Stopped: 2
 Images: 5
 Server Version: 20.10.12
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: nvidia runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
 Default Runtime: runc
 Init Binary: docker-init
 containerd version:
 runc version:
 init version:
 Security Options:
  apparmor
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.15.0-41-generic
 Operating System: Ubuntu 22.04 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 5.797GiB
 Name: maji
 ID: OIRP:TYAE:HIPS:SIF3:NZRF:22QI:GO5A:64A4:OP2O:ALVA:PPLN:4TOH
 Docker Root Dir: /data/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Ich führe den Launcher als root aus. Nun, ich habe schon alle möglichen Docker-Container auf Maschinen mit der gleichen Konfiguration betrieben und keine Probleme gehabt.

Jetzt bin ich mir nicht sicher, ob das Problem möglicherweise an Dateiberechtigungen liegt, der Fehler lässt mich das überhaupt nicht vermuten.

/opt/discourse# ls -la
total 140
drwxr-xr-x 14 root root  4096 Jul 24 01:26 .
drwxr-xr-x  7 root root  4096 Jul 15 07:23 ..
drwxr-xr-x  8 root root  4096 Jul 24 02:30 .git
drwxr-xr-x  3 root root  4096 Jul 15 07:23 .github
-rw-r--r--  1 root root   309 Jul 15 07:23 .gitignore
-rw-r--r--  1 root root  1099 Jul 15 07:23 LICENSE
-rw-r--r--  1 root root  8285 Jul 15 07:23 README.md
drwxr-xr-x  2 root root  4096 Jul 15 07:23 bin
drwxr-xr-x  2 root root  4096 Jul 24 02:34 cids
drwxr-xr-x  2 root root  4096 Jul 24 02:30 containers
-rwxr-xr-x  1 root root 11956 Jul 15 07:23 discourse-doctor
-rwxr-xr-x  1 root root 27053 Jul 15 07:23 discourse-setup
drwxr-xr-x  8 root root  4096 Jul 15 07:23 image
-rwxr-xr-x  1 root root 22547 Jul 15 07:23 launcher
drwxr-xr-x  2 root root  4096 Jul 24 01:39 samples
drwxr-xr-x  2 root root  4096 Jul 15 07:23 scripts
drwxr-xr-x  2 root root  4096 Jul 15 07:23 shared
drwxr-xr-x  3 root root  4096 Jul 15 07:23 templates
drwxr-xr-x  2 root root  4096 Jul 15 07:23 tests
/opt/discourse# ls -la containers/
total 16
drwxr-xr-x  2 root root 4096 Jul 24 02:30 .
drwxr-xr-x 14 root root 4096 Jul 24 01:26 ..
-rw-r--r--  1 root root    0 Jul 15 07:23 .gitkeep
-rw-r--r--  1 root root 1258 Jul 24 02:08 data.yml
-rw-r--r--  1 root root 3542 Jul 24 02:30 web.yml
/opt/discourse# cd /data/discourse/
/data/discourse# ls -la
total 16
drwxr-xr-x 4 root root 4096 Jul 24 02:06 .
drwxr-xr-x 5 root root 4096 Jul 23 11:58 ..
drwxr-xr-x 6 root root 4096 Jul 24 02:09 data
drwxr-xr-x 7 root root 4096 Jul 24 02:34 web

Versuchen Sie, die folgenden Zeilen unter die Zeilen zu kopieren, in denen bundle install steht (ungefähr Zeile 160)

  - exec:
      cd: $home
      cmd:
        - su discourse -c 'gem update uri'

Ich habe versucht, das run-Block hinzuzufügen, unter exec: echo \"Beginning of custom commands\", und ich schätze, das war zu spät.

Also habe ich es zu hooks: -> after_code: hinzugefügt.

Ich habe das erhalten:

I, [2022-07-24T12:13:24.641982 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'gem update uri'
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/local/lib/ruby/gems/2.7.0 directory.
I, [2022-07-24T12:13:29.392041 #1]  INFO -- : Updating installed gems
Updating uri

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'gem update uri' failed with return #<Process::Status: pid 132 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "cmd"=>["su discourse -c 'gem update uri'"]}

Ich habe su discourse im Voraus entfernt, falls das helfen würde. Das schien gut voranzukommen, und ich stieß auf einen anderen Fehler:

I, [2022-07-24T12:21:17.497935 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile'
sh: 1: yarn: not found
I, [2022-07-24T12:21:19.397390 #1]  INFO -- :


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 5373 exit 127>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'

Ich dachte, ich sollte dann Yarn manuell installieren? Ich habe alle Plugins, einschließlich docker_manager, gelöscht, nur für den Fall. Es wurde immer noch nach Yarn gefragt, also dachte ich, ich könnte es genauso gut installieren:

I, [2022-07-24T12:37:42.295754 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake plugin:pull_compatible_all'
WARNING: Plugins were activated before running `rake plugin:pull_compatible_all`
  You should prefix this command with LOAD_PLUGINS=0
I, [2022-07-24T12:37:44.807237 #1]  INFO -- :
I, [2022-07-24T12:37:44.807548 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
I, [2022-07-24T12:37:48.578845 #1]  INFO -- :
I, [2022-07-24T12:37:48.579098 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile'
error Command "ember" not found.
I, [2022-07-24T12:37:50.795001 #1]  INFO -- : yarn run v1.22.19
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 5409 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}

Es begann also, sich über Ember zu beschweren. Auch wenn ich versucht habe, es manuell zu installieren.

So sieht mein after_code jetzt aus:

hooks:
  after_code:
    - exec:
        cd: $home
        cmd:
          - gem update uri
          - npm install -g yarn
          - npm install -g ember
        #- exec:
        # cd: $home/plugins
        #cmd:
            #- git clone https://github.com/discourse/docker_manager.git

Ich bin mir nicht sicher, ob das der richtige Weg ist.

Die gute Nachricht ist, dass dieser Befehl anscheinend jetzt ausgeführt wird.

Mir war das fehlende LOAD_PLUGINS vorher aufgefallen, aber ich hatte es nicht erwähnt. Haben Sie das entfernt? Es ist in der ursprünglichen Vorlage enthalten. Wenn Sie die Vorlage geändert haben, wäre es nicht schlecht zu sehen, ob es noch weitere Dinge gibt, die Sie geändert haben. Oder vielleicht verwenden Sie eine alte Version. Haben Sie git pull ausgeführt, bevor Sie die App neu erstellt haben?

3 „Gefällt mir“

Ich habe das nicht angerührt. Ich kann es weder in den web_only.yml noch in den standalone.yml Beispiel-Dateien finden. Ich habe es nicht hinzugefügt, aber das ist wohl nur eine Warnung?
Das Problem, das ich hatte, hängt mit Ember zusammen, nicht mit den Plugins.


Ehrlich gesagt, ich habe git pull unzählige Male ausgeführt, aber es war ziemlich stabil und es wurden keine neuen Commits gezogen.
Als ich den genauen Link zum Commit bekam, habe ich festgestellt, dass meine Automatisierung den master-Branch ausgecheckt hat, und ich schätze, das gibt nicht einmal eine Warnung oder irgendetwas. Soweit ich main ausgecheckt habe, hat das funktioniert. Es scheint, als ob es letztes Jahr geändert wurde.

1 „Gefällt mir“

Ich weiß das, aber das Fehlen von LOAD_PLUGINS=0 war für mich ein Zeichen dafür, dass Sie gegen eine alte Version des Repositories liefen.

1 „Gefällt mir“

Es wäre schön gewesen, am Anfang der Launcher-Protokollzeile einen Verweis darauf zu haben, dass ich den Legacy-Branch ausgeführt habe. Das hätte viel Aufwand erspart.

Ich weiß nicht, ob die Erwartung an den Launcher ist, dass er automatisch den Git-Branch wechselt, aber das ist bei mir definitiv nicht passiert.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.