J’essaie de configurer Discourse dans mon environnement de développement local avec une petite différence : j’exécute Postgres dans Docker.
La base de données est accessible via psql depuis le système d’exploitation, mais lorsque j’ai essayé de créer la base de données avec rake ou rails, cela n’a pas fonctionné. J’ai suivi ces étapes :
la connexion au serveur sur le socket « /var/run/postgresql/.s.PGSQL.5432 » a échoué : Aucun fichier ou répertoire de ce type
Le serveur est-il en cours d'exécution localement et accepte-t-il les connexions sur ce socket ?
Impossible de créer la base de données 'discourse_development'. Veuillez vérifier votre configuration.
rails a avorté !
ActiveRecord::NoDatabaseError : la connexion au serveur sur le socket « /var/run/postgresql/.s.PGSQL.5432 » a échoué : Aucun fichier ou répertoire de ce type
Le serveur est-il en cours d'exécution localement et accepte-t-il les connexions sur ce socket ?
Causé par :
PG::ConnectionBad : la connexion au serveur sur le socket « /var/run/postgresql/.s.PGSQL.5432 » a échoué : Aucun fichier ou répertoire de ce type
Le serveur est-il en cours d'exécution localement et accepte-t-il les connexions sur ce socket ?
Tâches : TOP => db:create
(Voir la trace complète en exécutant la tâche avec --trace)
Je ne suis pas sûr, mais je pense que le problème vient probablement du fait que Discourse s’exécute à l’intérieur d’un conteneur Docker et ne peut donc pas accéder par défaut à votre conteneur PostgreSQL séparé.
Discourse ne fonctionne pas dans un conteneur Docker, il fonctionne sur mon système d’exploitation. Postgres fonctionne dans un conteneur, et j’ai exposé son port au système d’exploitation -p 5432:5432.
connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
Couldn't create 'discourse_development' database. Please check your configuration.
rails aborted!
ActiveRecord::NoDatabaseError: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
Caused by:
PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
Tasks: TOP => db:create
(See full trace by running task with --trace)
Non, cela signifie simplement que le socket par défaut a la priorité sur la déclaration du port. Une façon de contourner cela est d’utiliser la clé url, mais vous pouvez consulter le code de Rails pour voir d’autres méthodes.