** échec du démarrage **

J’ai essayé d’installer Discourse et j’obtiens une erreur FAILED TO BOOTSTRAP.
Voici le journal :

ENTER pour continuer, 'n' pour réessayer, Ctrl+C pour quitter :
Activation de Let's Encrypt
web.ssl.template.yml activé
letsencrypt.ssl.template.yml activé

Le fichier de configuration à  a été mis à jour avec succès !

Mises à jour réussies. Reconstruction dans 5 secondes.
Construction de l'application
Vérification que le lanceur est à jour
Récupération de origin
Le lanceur est à jour
cd /pups && git pull && /pups/bin/pups --stdin
Déjà à jour.
I, [2020-07-24T18:55:58.464935 #1]  INFO -- : Chargement de --stdin
I, [2020-07-24T18:55:58.473367 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2020-07-24T18:55:58.506619 #1]  INFO -- : Génération des paramètres régionaux (cela peut prendre un certain temps)...
Génération terminée.

I, [2020-07-24T18:55:58.506995 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2020-07-24T18:55:58.509890 #1]  INFO -- :
I, [2020-07-24T18:55:58.510432 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-07-24T18:55:58.512373 #1]  INFO -- :
I, [2020-07-24T18:55:58.512886 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2020-07-24T18:55:58.515262 #1]  INFO -- :
I, [2020-07-24T18:55:58.515771 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2020-07-24T18:55:58.517798 #1]  INFO -- :
I, [2020-07-24T18:55:58.518308 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-07-24T18:55:58.520717 #1]  INFO -- :
I, [2020-07-24T18:55:58.521218 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2020/07/24 18:55:58 socat[26] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2020-07-24T18:55:58.532831 #1]  INFO -- :
I, [2020-07-24T18:55:58.533118 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-07-24T18:55:58.535580 #1]  INFO -- :
I, [2020-07-24T18:55:58.535885 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-07-24T18:55:58.538318 #1]  INFO -- :
I, [2020-07-24T18:55:58.538610 #1]  INFO -- : > mkdir -p /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-07-24T18:55:58.540691 #1]  INFO -- :
I, [2020-07-24T18:55:58.541137 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-07-24T18:55:58.542920 #1]  INFO -- :
I, [2020-07-24T18:55:58.547145 #1]  INFO -- : Fichier > /etc/service/postgres/run  chmod: +x  chown:
I, [2020-07-24T18:55:58.551140 #1]  INFO -- : Fichier > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2020-07-24T18:55:58.555034 #1]  INFO -- : Fichier > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2020-07-24T18:55:58.558937 #1]  INFO -- : Fichier > /root/upgrade_postgres  chmod: +x  chown:
I, [2020-07-24T18:55:58.559391 #1]  INFO -- : > chown -R root /var/lib/postgresql/12/main
I, [2020-07-24T18:56:05.381806 #1]  INFO -- :
I, [2020-07-24T18:56:05.382562 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-07-24T18:56:05.385503 #1]  INFO -- :
I, [2020-07-24T18:56:05.385920 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2020-07-24T18:56:05.394083 #1]  INFO -- :
I, [2020-07-24T18:56:05.394491 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2020-07-24T18:56:05.396516 #1]  INFO -- :
I, [2020-07-24T18:56:05.396943 #1]  INFO -- : > /root/upgrade_postgres
I, [2020-07-24T18:56:05.403490 #1]  INFO -- :
I, [2020-07-24T18:56:05.403830 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2020-07-24T18:56:05.405807 #1]  INFO -- :
I, [2020-07-24T18:56:05.406414 #1]  INFO -- : Remplacement de data_directory = '/var/lib/postgresql/12/main' par data_directory = '/shared/postgres_data' dans /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.407666 #1]  INFO -- : Remplacement de (?-mix:#?listen_addresses *=.*) par listen_addresses = '*' dans /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.408137 #1]  INFO -- : Remplacement de (?-mix:#?synchronous_commit *=.*) par synchronous_commit = $db_synchronous_commit dans /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.408917 #1]  INFO -- : Remplacement de (?-mix:#?shared_buffers *=.*) par shared_buffers = $db_shared_buffers dans /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.409490 #1]  INFO -- : Remplacement de (?-mix:#?work_mem *=.*) par work_mem = $db_work_mem dans /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.410066 #1]  INFO -- : Remplacement de (?-mix:#?default_text_search_config *=.*) par default_text_search_config = '$db_default_text_search_config' dans /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.410701 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2020-07-24T18:56:05.414314 #1]  INFO -- :
I, [2020-07-24T18:56:05.414961 #1]  INFO -- : Remplacement de (?-mix:#?checkpoint_segments *=.*) par checkpoint_segments = $db_checkpoint_segments dans /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.415521 #1]  INFO -- : Remplacement de (?-mix:#?logging_collector *=.*) par logging_collector = $db_logging_collector dans /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.416016 #1]  INFO -- : Remplacement de (?-mix:#?log_min_duration_statement *=.*) par log_min_duration_statement = $db_log_min_duration_statement dans /etc/postgresql/12/main/postgresql.conf
I, [2020-07-24T18:56:05.416731 #1]  INFO -- : Remplacement de (?-mix:^#local +replication +postgres +peer$) par local replication postgres  peer dans /etc/postgresql/12/main/pg_hba.conf
I, [2020-07-24T18:56:05.417184 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*127.*$) par host all all 0.0.0.0/0 md5 dans /etc/postgresql/12/main/pg_hba.conf
I, [2020-07-24T18:56:05.417700 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/12/bin/postmaster -D /etc/postgresql/12/main
I, [2020-07-24T18:56:05.418973 #1]  INFO -- : > sleep 5
2020-07-24 18:56:05.434 GMT [49] LOG:  0 8kB est en dehors de la plage valide pour le paramètre "shared_buffers" (16 .. 1073741823)
2020-07-24 18:56:05.435 UTC [49] FATAL:  le fichier de configuration "/etc/postgresql/12/main/postgresql.conf" contient des erreurs
I, [2020-07-24T18:56:10.424189 #1]  INFO -- :
I, [2020-07-24T18:56:10.424518 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
createdb: erreur : impossible de se connecter à la base de données template1 : impossible de se connecter au serveur : Aucun fichier ou répertoire
        Le serveur est-il en cours d'exécution localement et accepte-t-il
        les connexions sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432" ?
I, [2020-07-24T18:56:10.470398 #1]  INFO -- :
I, [2020-07-24T18:56:10.470767 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql: erreur : impossible de se connecter au serveur : impossible de se connecter au serveur : Aucun fichier ou répertoire
        Le serveur est-il en cours d'exécution localement et accepte-t-il
        les connexions sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432" ?
I, [2020-07-24T18:56:10.520451 #1]  INFO -- :
I, [2020-07-24T18:56:10.520909 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql: erreur : impossible de se connecter au serveur : impossible de se connecter au serveur : Aucun fichier ou répertoire
        Le serveur est-il en cours d'exécution localement et accepte-t-il
        les connexions sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432" ?
I, [2020-07-24T18:56:10.569147 #1]  INFO -- :
I, [2020-07-24T18:56:10.569513 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: erreur : impossible de se connecter au serveur : impossible de se connecter au serveur : Aucun fichier ou répertoire
        Le serveur est-il en cours d'exécution localement et accepte-t-il
        les connexions sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432" ?
I, [2020-07-24T18:56:10.624778 #1]  INFO -- :
I, [2020-07-24T18:56:10.625306 #1]  INFO -- : Terminaison des processus asynchrones


ÉCHEC
--------------------
Pups::ExecError : su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' a échoué avec le code de retour #<Process::Status: pid 75 exit 2>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
exec a échoué avec les paramètres "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
88ef1f69c68375f34f7ed80b11cbe2b1fac59a79a226118cb3205f0dc0ea5276
** ÉCHEC DU BOOTSTRAP ** Veuillez faire défiler vers le haut et rechercher les messages d'erreur antérieurs, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.

Il semble que l’erreur principale soit l’impossibilité de se connecter au serveur, mais je ne comprends pas tout à fait…
su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' psql: erreur : impossible de se connecter au serveur : impossible de se connecter au serveur : Aucun fichier ou répertoire Le serveur est-il en cours d'exécution localement et accepte-t-il les connexions sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432" ?

Quelqu’un pourrait-il m’aider ?
Merci

Quelle quantité de mémoire RAM votre serveur possède-t-il ?

1 Go.

Hmm, c’est vraiment étrange.

Nous calculons la taille de db_shared_buffers ici :

Je ne vois pas comment on peut se retrouver avec seulement 8 ko en suivant cela.

Peux-tu vérifier la valeur dans ton fichier app.yml ?

Bien sûr, où se trouve app.yml, ou quelle commande dois-je exécuter pour l’afficher (cat) ?

/var/discourse/containers/app.yml

J’ai trouvé nano plus facile à utiliser.

Merci.

@Falco, @IAmGav, voici le contenu du fichier app.yml :

## Ceci est le modèle de conteneur Docker Discourse autonome tout-en-un
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ *TRÈS* PRUDENT EN ÉDITANT !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## Visitez http://www.yamllint.com/ pour valider ce fichier au besoin

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 bootstrap en fonction de la RAM détectée, ou vous pouvez le remplacer
  db_shared_buffers: "0MB"

  ## Peut améliorer les performances de tri, mais augmente l'utilisation de la mémoire par connexion
  #db_work_mem: "40MB"

  ## Quelle révision Git ce conteneur doit-il utiliser ? (par défaut : tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## 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 bootstrap en fonction des CPU détectés, ou vous pouvez le remplacer
  UNICORN_WORKERS: 0

  ## TODO : Le nom de domaine auquel cette instance Discourse répondra
  ## Requis. Discourse ne fonctionnera pas avec une adresse IP brute.
  DISCOURSE_HOSTNAME: community.kodularlessons.net

  ## Décommentez si vous souhaitez que le conteneur soit démarré avec le même
  ## nom d'hôte (option -h) que celui spécifié ci-dessus (par défaut "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO : Liste d'e-mails séparés par des virgules qui seront définis comme administrateurs et développeurs
  ## lors de l'inscription initiale, par exemple 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: '******s@gmail.com'

  ## TODO : Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
  # L'adresse SMTP, le nom d'utilisateur et le mot de passe sont requis
  # ATTENTION : le caractère '#' dans le mot de passe SMTP peut causer des problèmes !
  DISCOURSE_SMTP_ADDRESS: mboxhosting.com
  DISCOURSE_SMTP_PORT: 993
  DISCOURSE_SMTP_USER_NAME: no-reply@kodularlessons.net
  DISCOURSE_SMTP_PASSWORD: "*****************"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optionnel, par défaut true)

  ## 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 extraire)
  ## consultez https://meta.discourse.org/t/14857 pour plus de détails
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

## 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

## Toute commande personnalisée à 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, re-commentez la ligne. Elle ne doit être exécutée qu'une seule fois.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fin des commandes personnalisées"

Remarque : J’ai censuré manuellement les informations privées.

Cela ne devrait pas être zéro

Changez-le en

db_shared_buffers: “128MB”

Merci, donnez-moi une seconde pendant que je le modifie.

1 « J'aime »

Mon message a disparu car il a été intercepté par un filtre anti-spam. De toute façon, je vais coller le nouveau journal sur Pastebin.

Après avoir apporté des modifications au fichier yml, exécutez cette commande.

./launcher rebuild app

Merci, cela renvoie également une erreur d’échec de démarrage, consultez le journal :

Cela rencontre des problèmes avec shared_buffers et PostgreSQL.

Quoi d’autre tourne sur cette instance ?

Rien d’autre ne tourne sur la VM (je pense)… Je l’ai achetée sur Azure.