I contenitori campione Beta/test superati non si avviano

Prima di intraprendere questo viaggio con me, si prega di notare che, sebbene questo errore sia già stato menzionato in questo forum due volte (uno e due), la soluzione di ‘ricostruire il container dei dati’ non ha funzionato. Sto lavorando con dati completamente vuoti e cancellando tutti i container/volumi/cartelle di archiviazione tra un tentativo e l’altro.

Si prega inoltre di notare che baso i miei test sui file di esempio forniti. Non è un plugin, ho provato a rimuovere tutti i plugin.


Sto riscontrando problemi nell’avvio di container vuoti per i branch più recenti tests-passed e beta. Stable funziona come previsto. L’errore si verifica con standalone o web-only (dopo aver avviato data, ovviamente).

Per escludere errori di configurazione, ho eseguito i seguenti passaggi:

  • Ho copiato il file samples/standalone.yml in containers/
  • Ho modificato solo le seguenti cose nel file:
    • Ho modificato l’indirizzo SMTP con un valore fittizio
    • Ho modificato l’indirizzo di discourse con un valore fittizio
    • Ho modificato la posizione dei dati condivisi
    • Ho rimosso la porta 443 e modificato il mapping della porta 80. Ecco il risultato standalone.yml
    • Ho eseguito ./laucher rebuild standalone. Ecco i log completi rebuilding_standalone.txt

E ottengo il seguente errore:

RubyZip 3.0 sta arrivando!
**********************

L'API pubblica di alcune classi Rubyzip è stata modernizzata per utilizzare parametri nominati per gli argomenti opzionali. Si prega di controllare l'utilizzo delle seguenti classi:
  * `Zip::File`
  * `Zip::Entry`
  * `Zip::InputStream`
  * `Zip::OutputStream`

Assicurarsi che i Gemfile e i .gemspec siano sufficientemente restrittivi per evitare interruzioni impreviste al rilascio della versione 3.0 (ad esempio, ~\u003e 2.3.0).
Vedere https://github.com/rubyzip/rubyzip per i dettagli. Il Changelog elenca anche altri miglioramenti e correzioni di bug implementati dalla versione 2.3.0.

I, [2022-07-24T01:58:05.415957 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake plugin:pull_compatible_all'
bundler: impossibile caricare il comando: 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!': Hai già attivato uri 0.10.0, ma il tuo Gemfile richiede uri 0.11.0. Poiché uri è una gemma predefinita, puoi rimuovere la tua dipendenza da essa o provare ad aggiornare a una versione più recente di bundler che supporti uri come gemma predefinita. (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: impossibile caricare il comando: 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!': Hai già attivato uri 0.10.0, ma il tuo Gemfile richiede uri 0.11.0. Poiché uri è una gemma predefinita, puoi rimuovere la tua dipendenza da essa o provare ad aggiornare a una versione più recente di bundler che supporti uri come gemma predefinita. (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 -- : 

Ho anche provato l’approccio a due container, con data e web_only. Web only ha lo stesso problema.

Tra un tentativo e l’altro, interrompo e rimuovo tutti i container, e rimuovo anche tutte le cartelle dei dati.

Il branch Stable funziona bene. Non penso che questo sia previsto.


Per dare un contesto, mi trovo ora in una situazione piuttosto brutta.
Ho bisogno di migrare urgentemente la mia installazione di Discourse dal server attuale a un nuovo server, poiché il server attuale verrà spento tra pochi giorni.
Il server attuale è in 2.9.0.beta7. Posso avviare un nuovo server in 2.8.6, ma non posso applicare un backup dal server attuale al nuovo server, poiché si tratta di un downgrade. E sono incapace di avviare un nuovo server vuoto su 2.9.0.beta7, poiché si verifica semplicemente l’errore sopra riportato.
La mia cartella dati nel server attuale è abbastanza grande da non avere abbastanza spazio su disco per compattarla e copiarla da qualche parte; anche se lo facessi, presumo che ci sarebbero conseguenze nell’utilizzare dati da una beta più recente in una versione precedente. Ho anche provato a ‘effettuare il downgrade’ del server attuale, per sicurezza, ma so che non è supportato e comunque non ha funzionato.

Perché sei costretto a eseguire il downgrade? Perché non puoi assicurarti che l’host di destinazione sia l’ultimo?

2 Mi Piace

Non voglio fare il downgrade. Ma non riesco ad avviare un nuovo server su 2.9.0.beta7 in base al messaggio di errore che ho inserito in questo post. Posso avviare un nuovo server solo su 2.8.6. Ho provato diverse configurazioni basate sui file di esempio e sui miei file, e né betatests-passed si avviano. Non sono sicuro se queste informazioni non siano chiare nel primo messaggio, nel file dei container o nei file di log.

A dire il vero, tutto ciò di cui ho bisogno è assicurarmi di poter spostare i miei dati da un server all’altro. Non importa esattamente la versione, ma ho bisogno di un nuovo server funzionante e di trasferire i vecchi dati sul nuovo server.

Il vecchio server è su 2.9.0.beta7 in questo momento. Quindi ho bisogno di un nuovo server che possa avviarsi sull’ultima versione (che non funziona), oppure ho bisogno di un modo per trasferire i dati su una nuova 2.8.6, che è l’unica versione su cui sono riuscito ad avviarlo.

1 Mi Piace

Mi dispiace, ora capisco. Quindi devo concentrarmi su quell’errore?

Idealmente, sì. Ottenere il nuovo server con la versione più recente sarebbe la cosa più semplice e facile per me.

Ma se ciò non fosse fattibile per qualsiasi motivo, se ci fosse un altro workaround che potrei usare, sarei anche interessato. Non sono nella posizione di essere purista riguardo alle versioni.

Inoltre, se può essere d’aiuto, queste sono le informazioni docker sul 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

Sto eseguendo il launcher come root. Ora, ho eseguito tutti i tipi di container docker su macchine con la stessa configurazione e non ho riscontrato problemi.

Ora, non sono sicuro se il problema possa essere potenzialmente legato ai permessi dei file, l’errore non mi porta affatto a pensarlo.

/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

Prova a copiare le seguenti righe sotto le righe che dicono bundle install (intorno alla riga 160)

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

Ho provato ad aggiungerlo al blocco run, sotto exec: echo \"Beginning of custom commands\", e immagino che fosse troppo tardi.

Quindi l’ho aggiunto a hooks: -> after_code:

Ho ottenuto questo:

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'"]}

Ho proceduto a rimuovere su discourse nel caso potesse aiutare. Sembra che questo abbia progredito bene e mi sono imbattuto in un altro errore:

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'

Ho pensato che avrei dovuto installare yarn manualmente? Ho eliminato tutti i plugin, incluso docker_manager, per sicurezza. Ha ancora chiesto yarn, quindi ho pensato che tanto valeva installarlo:

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'"]}

Quindi ha iniziato a lamentarsi di ember. Anche se ho provato a installarlo manualmente.

Ecco come appare attualmente il mio after_code:

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

Non sono sicuro che sia il percorso giusto.

La buona notizia è che questo comando sembra essere in esecuzione ora.

Ho notato la mancanza di LOAD_PLUGINS in precedenza ma non l’ho menzionata. L’hai rimossa? È presente nel template originale. Se hai modificato il template, non guasterebbe vedere se ci sono altre cose che hai cambiato. O forse sei su una versione vecchia. Hai fatto git pull prima di ricostruire l’app?

3 Mi Piace

Non l’ho toccata. Non riesco a trovarla né nel file web_only.yml né nei file di esempio standalone.yml. Non l’ho aggiunta, ma è solo un avviso, suppongo?

L’errore che stavo riscontrando è correlato a ember, non ai plugin.


Ad essere onesto, ho fatto git pull un’infinità di volte, ma era piuttosto stabile e non sono stati scaricati nuovi commit.

Mentre ottenevo il link esatto al commit, mi sono reso conto che la mia automazione stava scaricando il branch master, e immagino che questo non dia nemmeno un avviso o altro. Per quanto ho scaricato main, ha funzionato. Sembra che sia stato cambiato l’anno scorso.

1 Mi Piace

Lo so, ma la mancanza di LOAD_PLUGINS=0 è stato un segnale per me che stavi eseguendo una versione precedente del repository.

1 Mi Piace

Sarebbe stato bello avere una riga di log all’inizio del launcher che facesse riferimento al fatto che stavo eseguendo il ramo legacy. Avrebbe risparmiato un sacco di fatica.

Non so se le aspettative sul launcher siano che cambierebbe automaticamente il ramo git, ma di sicuro per me non è successo.

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