Estoy intentando configurar Discourse en mi entorno de desarrollo local con una pequeña diferencia: estoy ejecutando Postgres en Docker.
La base de datos es accesible usando psql desde el sistema operativo, pero cuando intenté crear la base de datos usando rake o rails, no funcionó. Seguí estos pasos:
la conexión al servidor en el socket "/var/run/postgresql/.s.PGSQL.5432" falló: No existe tal archivo o directorio
¿Está el servidor ejecutándose localmente y aceptando conexiones en ese socket?
No se pudo crear la base de datos 'discourse_development'. Por favor, revise su configuración.
rails abortó!
ActiveRecord::NoDatabaseError: la conexión al servidor en el socket "/var/run/postgresql/.s.PGSQL.5432" falló: No existe tal archivo o directorio
¿Está el servidor ejecutándose localmente y aceptando conexiones en ese socket?
Causado por:
PG::ConnectionBad: la conexión al servidor en el socket "/var/run/postgresql/.s.PGSQL.5432" falló: No existe tal archivo o directorio
¿Está el servidor ejecutándose localmente y aceptando conexiones en ese socket?
Tareas: TOP => db:create
(Vea el rastreo completo ejecutando la tarea con --trace)
No estoy seguro, pero creo que el problema es probablemente que Discourse se está ejecutando dentro de un contenedor de Docker y, por lo tanto, no puede acceder por defecto a tu contenedor de PostgreSQL separado.
Discourse no se está ejecutando dentro de un contenedor Docker, se está ejecutando en mi sistema operativo. Postgres se está ejecutando dentro de un contenedor y expuse su puerto al sistema operativo -p 5432:5432.
conexión al servidor en el socket "/var/run/postgresql/.s.PGSQL.5432" fallida: No existe tal archivo o directorio
¿Está el servidor ejecutándose localmente y aceptando conexiones en ese socket?
No se pudo crear la base de datos 'discourse_development'. Por favor, comprueba tu configuración.
rails abortado!
ActiveRecord::NoDatabaseError: conexión al servidor en el socket "/var/run/postgresql/.s.PGSQL.5432" fallida: No existe tal archivo o directorio
¿Está el servidor ejecutándose localmente y aceptando conexiones en ese socket?
Causado por:
PG::ConnectionBad: conexión al servidor en el socket "/var/run/postgresql/.s.PGSQL.5432" fallida: No existe tal archivo o directorio
¿Está el servidor ejecutándose localmente y aceptando conexiones en ese socket?
Tareas: TOP => db:create
(Ver el rastro completo ejecutando la tarea con --trace)
No, solo significa que el socket predeterminado tiene prioridad sobre la declaración del port. Una forma de solucionar eso es usar la clave url, pero puedes revisar el código de Rails para ver otras formas.