Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

310
Views
Conecte la aplicación Rails en el contenedor Docker a la base de datos Postgresql externa a través de URL

Tengo un contenedor acoplable con aplicación de rieles web. También tengo una base de datos externa en mi máquina osx. Si ejecuto en osx:

 psql "postgres://postgres:testing@0.0.0.0:5432/movies_development"

corro bien

Si lo ejecuto en un contenedor, recibiré

 psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

¿Tiene alguna idea sobre cómo conectarse a una base de datos externa desde un contenedor? Gracias

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Encontré una forma de conectar la aplicación en el contenedor docker a la base de datos local que se encuentra en mi osx.

0.0.0.0:5432 es una dirección de host local del contenedor (no un host local de osx) y debemos configurar uno nuevo:

  1. Encuentre la dirección local de osx Ip en Preferencias> Configuración de red (mi era 192.168.0.102)
  2. Agregue esta IP a la línea listener_address: '192.168.0.102, localhost' del archivo de configuración de postgresql.
  3. Agregue una línea adicional con Ip 192.168.0.102, host y md5 al archivo pg_hba.conf
  4. Reiniciar Postgresql

Establezca la configuración de conexión en la aplicación a través de ENV como: postgres://postgres:testing@192.168.0.102:5432/movies_development

over 4 years ago · Santiago Trujillo Report

0

Puede haber dos razones según su pregunta:

  • ¿Ha expuesto EXPOSE 5432 durante la compilación de la imagen de la ventana acoplable? o antes de iniciar el contenedor con docker run -it -d --name $container_name -p 5432:5432 $image_name ? Si NO, entonces debe tener que hacer cualquiera de los cambios anteriores y luego puede conectarse a una base de datos alojada externamente.
  • Si va dentro de su contenedor acoplable con docker exec -it $container_name bash y ejecuta el comando este psql "postgres://postgres:testing@0.0.0.0:5432/movies_development" , entonces debe haber un cliente psql instalado en su contenedor acoplable con variable $PATH adecuada; de lo contrario, arrojará un error como comando no encontrado/no existe tal archivo o directorio.
  • Nota: si su aplicación utiliza alguna otra forma de comunicarse con la base de datos, su aplicación funcionará sin el programa cliente psql.

Espero que esta ayuda. ¡Gracias!

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!