Impossible de construire le conteneur d'importation phpBB sur un Discourse tout neuf

J’ai installé un tout nouveau discourse. Tout fonctionne. Je peux créer le compte initial, recevoir des e-mails, me connecter, etc.

Je dois importer un forum phpbb3. J’ai l’intention d’utiliser l’utilitaire d’importation pour peupler mon Discourse avec des données historiques, j’ai donc suivi les instructions dans Migrate a phpBB3 forum to Discourse

J’ai exécuté la commande de copie

cp containers/app.yml containers/import.yml

et j’ai modifié le fichier pour ajouter la ligne de modèle. Mon site utilise LetsEncrypt pour le certificat TLS, donc les lignes de modèle SSL et LetsEncrypt sont décommentées - c’est un peu différent de l’exemple montré dans les instructions. Quoi qu’il en soit, j’ai essayé cela avec des lignes commentées et décommentées, donc je ne pense pas que ces lignes soient un facteur.

J’ai continué avec les instructions restantes, exécutant finalement la commande de reconstruction du conteneur. La commande ne se termine pas avec succès.

94:M 23 Jul 2024 20:14:40.761 * Sauvegarde du dernier instantané RDB avant la sortie.
94:M 23 Jul 2024 20:14:40.855 * DB sauvegardé sur disque
94:M 23 Jul 2024 20:14:40.857 # Redis est maintenant prêt à quitter, au revoir...
2024-07-23 20:14:41.235 UTC [32] LOG: la base de données est arrêtée


FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/service/unicorn/run
Emplacement de l'échec : /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
remplacement échoué avec les paramètres {"tag"=>"precompile", "filename"=>"/etc/service/unicorn/run", "from"=>"PRECOMPILE_ON_BOOT=1", "to"=>"PRECOMPILE_ON_BOOT=0"}
bootstrap échoué avec le code de sortie 1
** ÉCHEC DU BOOTSTRAP ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
6f1a0b5cd0cfc8ed542938b7439aeff0a21a0135c58617fa5a05e68fd6fcc70d

Je ne suis pas sûr de la façon de résoudre ce problème. J’ai installé plusieurs fois dans plusieurs endroits. D’après ce que j’ai lu, il semble que cette étape de reconstruction (qui n’est pas l’importation réelle des données) devrait simplement s’exécuter. Est-ce possiblement un problème avec la version la plus récente de Discourse ? J’ai réussi à importer du début à la fin il y a plusieurs mois à titre d’essai.

Oui.

Vous devrez partager ou comprendre davantage la sortie.

1 « J'aime »

Pour créer un point de départ commun, j’ai réinstallé mon VPS (Ubuntu 22.04), j’ai exécuté apt update && apt upgrade, puis j’ai commencé le processus d’installation standard de Discourse.

Au cas où cette information serait pertinente, j’ai commis une erreur en saisissant des informations lors du premier ./discourse-setup, j’ai donc appuyé sur control-C puis j’ai relancé ./discourse-setup. La deuxième exécution de ./discourse-setup a téléchargé une nouvelle image de base de Discourse, comme le montre…

root@discourse:/var/discourse# ./discourse-setup 
Le fichier de configuration containers/app.yml existe déjà !

. . . reconfiguration . . .


Sauvegarde de l'ancien fichier sous app.yml.2024-07-29-151604.bak
Arrêt du conteneur existant dans 5 secondes ou appuyez sur Control-C pour annuler.
Détection de l'architecture x86_64.

ATTENTION : Nous sommes sur le point de commencer le téléchargement de l'image de base Discourse
Ce processus peut prendre entre quelques minutes et une heure, en fonction de votre vitesse de réseau
Veuillez patienter

2.0.20240708-0023: Pulling from discourse/base
76956b537f14: Pull complete 
c5ffad89ad3c: Pull complete 
71c31a50a587: Pull complete 
c1a1234dcb61: Pull complete 
9980a27afc32: Pull complete 
4f4fb700ef54: Pull complete 
304b565c70c9: Pull complete 
8ad811162d08: Pull complete 
2c324dce526d: Pull complete 
52d141c2b1c8: Pull complete 
4c08fdcd145a: Pull complete 
1b6035ac25c0: Pull complete 
9208d0f90623: Pull complete 
513dccf6f63f: Pull complete 
e0b141854963: Pull complete 
4476d7dd9441: Pull complete 
0fad77941078: Pull complete 
46c34476ea19: Pull complete 
ff0b86516349: Pull complete 
c33170d09c8b: Pull complete 
ed4a793ffe51: Pull complete 
3a7b2554e089: Pull complete 
3ad8a6408839: Pull complete 
e7c58bcc7f57: Pull complete 
59b2407fe431: Pull complete 
315160f4d4f8: Pull complete 
ad328ba96976: Pull complete 
825dca2e642e: Pull complete 
9fbd8c908047: Pull complete 
b1d30330e969: Pull complete 
8c76c65bb8e8: Pull complete 
9279965667b5: Pull complete 
a0ae3eb4d088: Pull complete 
819fb509ef8b: Pull complete 
c962935d47d4: Pull complete 
63b444b5bd1e: Pull complete 
7efa1c09faf6: Pull complete 
46c4327ce462: Pull complete 
b095ebe7bdf6: Pull complete 
3aa16a533cab: Pull complete 
41419e4f1948: Pull complete 
589837814d9a: Pull complete 
bd025ad1b844: Pull complete 
24762ff7528f: Pull complete 
fe364253c657: Pull complete 
Digest: sha256:025e9c1f6848c4726544c6ae873d710c62f547b72afb7f537aaa44eb5377cb5c
Status: Téléchargement d'une image plus récente pour discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
L'application n'a pas démarré !
./discourse-doctor peut aider à diagnostiquer le problème.

Mémoire de 3 Go et 2 cœurs de processeur physiques trouvés
configuration de db_shared_buffers = 768 Mo
configuration de UNICORN_WORKERS = 4
Paramètres de mémoire de containers/app.yml mis à jour.

L’installation de Discourse s’est poursuivie et s’est terminée. J’ai pu créer le compte initial et me connecter.

I, [2024-07-29T15:42:21.624379 #1]  INFO -- : Remplacement de l'emplacement @discourse { par l'emplacement @discourse {
add_header Strict-Transport-Security 'max-age=31536000'; # mémoriser le certificat pendant un an et se connecter automatiquement à HTTPS pour ce domaine dans /etc/nginx/conf.d/discourse.conf
I, [2024-07-29T15:42:21.627858 #1]  INFO -- : > echo "Début des commandes personnalisées"
I, [2024-07-29T15:42:21.634022 #1]  INFO -- : Début des commandes personnalisées

I, [2024-07-29T15:42:21.637436 #1]  INFO -- : > echo "Fin des commandes personnalisées"
I, [2024-07-29T15:42:21.642766 #1]  INFO -- : Fin des commandes personnalisées

I, [2024-07-29T15:42:21.648034 #1]  INFO -- : Arrêt des processus asynchrones
I, [2024-07-29T15:42:21.649479 #1]  INFO -- : Envoi de INT à 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: 57
2024-07-29 15:42:21.651 UTC [57] LOG:  demande d'arrêt rapide reçue
I, [2024-07-29T15:42:21.652067 #1]  INFO -- : Envoi de TERM à exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 120
120:signal-handler (1722267741) SIGTERM reçue, planification de l'arrêt...
2024-07-29 15:42:21.658 UTC [57] LOG:  abandon de toutes les transactions actives
120:M 29 Jul 2024 15:42:21.667 # L'utilisateur a demandé l'arrêt...
120:M 29 Jul 2024 15:42:21.668 * Sauvegarde de la dernière instantané RDB avant de quitter.
2024-07-29 15:42:21.682 UTC [57] LOG:  le processus d'arrière-plan « logical replication launcher » (PID 72) s'est terminé avec le code de sortie 1
120:M 29 Jul 2024 15:42:21.682 * DB sauvegardé sur disque
120:M 29 Jul 2024 15:42:21.683 # Redis est maintenant prêt à quitter, au revoir...
2024-07-29 15:42:21.685 UTC [67] LOG:  arrêt en cours
2024-07-29 15:42:21.806 UTC [57] LOG:  le système de base de données est arrêté
sha256:6a6d6a8ea3559ad031a84fd48a164686e9440d7e857cb39619c2baba84a4b966
2b8eddd7b72415507d10cc404c40459c19c7ad3e025cb7bb69bcddb3c98b0197

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -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=discourse3.greenbullfrog.com -e DISCOURSE_DEVELOPER_EMAILS=discourse-admin@greenbullfrog.com -e DISCOURSE_SMTP_ADDRESS=box.greenbullfrog.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=discourse@greenbullfrog.com -e DISCOURSE_SMTP_PASSWORD=lAtDyjbyqztzhrG -e DISCOURSE_SMTP_DOMAIN=discourse3.greenbullfrog.com -e DISCOURSE_NOTIFICATION_EMAIL=noreply@discourse3.greenbullfrog.com -e LETSENCRYPT_ACCOUNT_EMAIL=letsencrypt@greenbullfrog.com -h discourse-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:f9:8c:dd:3d:63 local_discourse/app /sbin/boot
a78541042858ed6a4dd739bb7c8243a50a4064f595fdf968c22c8b63afb68979
root@discourse:/var/discourse# 

Ensuite, j’ai commencé le processus décrit sur Migrate a phpBB3 forum to Discourse.

Voici le début de mon fichier import.yml

root@discourse:/var/discourse# head -23 containers/import.yml 
## ceci est le modèle de conteneur Docker Discourse tout-en-un, autonome
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ TRÈS PRUDENT LORS DE L'ÉDITION !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Décommentez la ligne suivante pour activer l'écoute IPv6
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/import/phpbb3.template.yml"

## quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous voulez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
root@discourse:/var/discourse# 

Le problème survient lors de l’exécution de la commande /var/discourse/launcher rebuild import. En raison de sa longueur, il n’est pas possible de publier le log de cette commande. Cependant, vous pouvez le télécharger depuis ce lien NextCloud…

@gerhard, cela pourrait toujours être dans votre domaine.

Je pense que le problème est que le modèle phpbb3 supprime /etc/service/unicorn et que le modèle web essaie ensuite de modifier ce fichier.
La chose la plus simple serait peut-être de supprimer ces lignes de web.template.yml

  - replace:
      tag: precompile
      filename: /etc/service/unicorn/run
      from: PRECOMPILE_ON_BOOT=1
      to: "PRECOMPILE_ON_BOOT=0"

Mais vous voudrez le faire après avoir construit le conteneur d’origine, puis faire quelque chose comme

git checkout templates/web.template.yml

avant de faire une autre reconstruction.

1 « J'aime »

Merci pour ces instructions, @pfaffman.

Malheureusement, j’ai laissé la reconstruction en cours et je suis revenu à une session SSH déconnectée, je n’ai donc pas capturé toutes les sorties de construction. La reconstruction a créé une image Docker et démarré le conteneur, j’étais donc raisonnablement satisfait qu’elle se soit terminée normalement.

J’ai placé mes données phpbb3 aux bons endroits pour une importation locale et j’ai émis la commande pour commencer. L’importation est en cours mais prendra un certain temps à se terminer. Je répondrai demain avec un résultat.

1 « J'aime »

L’importation s’est terminée et semble avoir migré la plupart des données. Certains comptes d’utilisateurs phpbb ont apparemment des adresses e-mail qui dérangent Discourse. Je pense que cela pourrait être un espace de fin. J’essaie de nettoyer avant de relancer toute la procédure.

Merci pour votre aide. Je suppose qu’il y aura une correction pour l’utilitaire d’importation qui, autrement, ne pourra pas être compilé pour la version actuelle de Discourse. Je soupçonne que beaucoup de gens n’auront pas les compétences techniques pour résoudre le problème et abandonneront simplement en rencontrant l’erreur. Cela entraînerait moins de communautés Discourse, et des discussions historiques perdues sur des sites phpbb abandonnés ou supprimés.

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