Bonjour,
mon forum tombe en panne à chaque fois que je fais ./launcher rebuild app.
J’ai joint une capture d’écran de l’erreur qu’il donne.
Si je comprends bien, le message d’erreur indique qu’il y a un problème à la ligne 9.
Essayez de taper cette commande :
cat -n containers/app.yml
Cela affichera le contenu du fichier avec les numéros de ligne, et vous pourrez vérifier la ligne 9 pour des erreurs de syntaxe.
Il serait probablement judicieux d’exécuter également la commande chmod mentionnée dans la sortie, bien qu’elle ne soit pas liée à l’erreur.
Eh bien, nano -l est une façon beaucoup plus simple de trouver la bonne ligne et de la corriger tout de suite ;)\n\nSi vous n’avez pas trop changé, app.yml à la ligne 9 se trouve juste avant templates: — peut-il y avoir quelque chose d’étrange comme un espace supplémentaire ?\n\nMais une chose que j’ai apprise à propos de YAML, c’est qu’il peut y avoir un espace blanc presque n’importe où, un espace manquant, une citation manquante ou un mauvais type - et l’erreur pointe au mauvais endroit.\n\nJe dirais qu’il est plus facile de supprimer app.yml et de refaire la configuration.
J’ai complètement supprimé cette ligne 9, mais il indique toujours une erreur de syntaxe à la ligne 9.
Comment puis-je le supprimer et le reconstruire ?
Je ferais d’abord une sauvegarde, s’il y a du contenu. Et après cela :
cd /var/discourse
mv containers/app.yml .
./discourse-setup
est-ce que ça va supprimer les données de mon forum ? comme les publications et les utilisateurs et tout ça ?
Non. Mais c’est pourquoi vous avez effectué une sauvegarde complète au préalable.
Mais vous pouvez aussi essayer ceci :
J’ai essayé de valider la validation YAML, il dit que tout va bien.
je pense que c’est un bug
Quelque chose l’est.
Mais vous pouvez copier-coller votre app.yml ici tel quel. Ensuite, quelqu’un de plus sage pourrait y jeter un œil. Parce que maintenant, personne ne sait ce qu’il y a ou ce qu’il n’y a pas.
Pouvez-vous partager votre app.yml complet sans les informations sécurisées (mots de passe, etc.) ?
## C'est le modèle de conteneur Docker Discourse tout-en-un et autonome
##
## Après avoir apporté des modifications à ce fichier, VOUS DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ *TRÈS* PRUDENT LORS DE LA MODIFICATION !
## 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
hooks: after_code: - exec: cd: $home/plugins cmd: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git coe tp/gtu.c/dcusedcu-pile-rti
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.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"
## quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consultez https://meta.discourse.org/t/17247 pour plus de détails
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Définissez db_shared_buffers à un maximum de 25 % de la mémoire totale.
## sera défini automatiquement par le bootstrap en fonction de la RAM détectée, ou vous pouvez le remplacer
db_shared_buffers: "256MB"
## peut améliorer les performances de tri, mais ajoute de la consommation mémoire par connexion
#db_work_mem: "40MB"
## Quelle révision Git ce conteneur doit-il utiliser ? (défaut : tests-passed)
#version: tests-passed
## Taille maximale de téléchargement (défaut : 900m)
upload_size: 900m
env:
# DISCOURSE_DEFAULT_LOCALE: en
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
## Combien de requêtes web simultanées sont prises en charge ? Dépend de la mémoire et des cœurs CPU.
## sera défini automatiquement par le bootstrap en fonction des CPU détectés, ou vous pouvez le remplacer
UNICORN_WORKERS: 4
## TODO : Le nom de domaine auquel cette instance Discourse répondra
## Obligatoire. Discourse ne fonctionnera pas avec un simple numéro IP.
DISCOURSE_HOSTNAME:
## Décommentez si vous souhaitez que le conteneur soit démarré avec le même
## nom d'hôte (-h option) que celui spécifié ci-dessus (par défaut "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO : Liste d'adresses e-mail délimitées par des virgules qui deviendront administrateur et développeur
## lors de la première inscription, par exemple 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: ''
## TODO : Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
# L'adresse, le nom d'utilisateur et le mot de passe SMTP sont requis
# ATTENTION, le caractère '#' dans le mot de passe SMTP peut causer des problèmes !
DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: ###
DISCOURSE_SMTP_PASSWORD: "##-07e2c238-419aaa92"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (facultatif, par défaut true)
DISCOURSE_SMTP_DOMAIN:
DISCOURSE_NOTIFICATION_EMAIL:
## Si vous avez ajouté le modèle Lets Encrypt, décommentez ci-dessous pour obtenir un certificat SSL gratuit
LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
## L'adresse CDN http ou https pour cette instance Discourse (configurée pour tirer)
## consultez https://meta.discourse.org/t/14857 pour plus de détails
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## La clé d'adresse IP MaxMind pour la recherche d'adresses IP de géolocalisation
## consultez https://meta.discourse.org/t/-/137387/23 pour plus de détails
#DISCOURSE_MAXMIND_LICENSE_KEY: ##
## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Les plugins vont ici
## consultez https://meta.discourse.org/t/19157 pour plus de détails
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Toutes les commandes personnalisées à exécuter après la construction
run:
- exec: echo "Début des commandes personnalisées"
## Si vous souhaitez définir l'adresse e-mail 'De' pour votre première inscription, décommentez et modifiez :
## Après avoir reçu le premier e-mail d'inscription, commentez à nouveau la ligne. Elle ne doit s'exécuter qu'une seule fois.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "Fin des commandes personnalisées"
Je pense que cela ne devrait pas être le début du fichier :
hooks: after_code: - exec: cd: $home/plugins cmd: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git coe tp/gtu.c/dcusedcu-pile-rti
Et il manque deux lignes sous la ligne LANG: en_US.UTF-8.
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
Peut-être qu’il y en a d’autres que je n’ai pas remarquées, mais voici le fichier par défaut et vous pouvez comparer.
La toute première ligne réelle commençant par hooks: ne peut pas être correcte. Elle devrait ressembler à quelque chose comme ceci :
hooks:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake posts:rebake
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
Enfin, pas exactement comme ça car c’est le mien, mais les lignes, les intentions, etc. devraient être similaires.
Tu me dépasses :rire:
Qu’en penses-tu : est-ce que un nouveau ./discourse-setup serait le moyen le plus rapide et le plus simple de réparer ce désordre ?
