Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

546
Vistas
Cómo configurar postgresql para ejecutar pruebas FastAPI en BitBucket Pipelines

Estoy tratando de configurar canalizaciones para un modelo de FastAPI en el que estoy trabajando. Lo que he fallado hasta ahora y no puedo entender por qué. Esto es lo que tengo:

bitbucket-pipelines.yml

 image: python:3.7.4-slim-buster options: max-time: 5 definitions: steps: - step: &test name: test script: - >- docker build -f {{cookiecutter.app_name}}/{{cookiecutter.service_name}}/tests.dockerfile -t boilerplate ./{{cookiecutter.app_name}}/{{cookiecutter.service_name}} - >- docker run --env POSTGRES_HOST=host.docker.internal --add-host host.docker.internal:$BITBUCKET_DOCKER_HOST_INTERNAL boilerplate /bin/bash -c /run-tests.sh services: - docker - postgres caches: - docker services: postgres: image: postgres environment: POSTGRES_HOST_AUTH_METHOD: trust pipelines: pull-requests: '**': - step: *test

Me estoy conectando a mi base de datos con:

 DATABASE_URL = os.getenv('DATABASE_URL', 'postgresql://postgres@localhost/postgres')

Aquí está el error que obtuve cuando ejecuté la canalización:

 E sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused E Is the server running on host "localhost" (127.0.0.1) and acceptingE TCP/IP connections on port 5432? EE (Background on this error at: http://sqlalche.me/e/13/e3q8)

postgresql://postgres@localhost/postgres porque así es como BitBucket configura postgresql para un usuario predeterminado. ¿Qué estoy haciendo mal?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Basado en lo que encontré en este artículo , aquí hay un fragmento:

Si necesita comunicarse desde un servicio que se ejecuta en docker a un servicio que se ejecuta en su contenedor de compilación, al iniciar el servicio, proporcione la siguiente entrada de host usando --add-host host.docker.internal:$BITBUCKET_DOCKER_HOST_INTERNAL y podrá acceder al servicio usando host.docker.internal:port

Se suponía que debía especificar host.docker.internal como mi host:

 DATABASE_URL = os.getenv('DATABASE_URL', 'postgresql://postgres@host.docker.internal/postgres')

en lugar de usar localhost

Otro enfoque sería hacer lo siguiente:

 DATABASE_URL = os.getenv('DATABASE_URL')

luego, en lugar de docker run --env POSTGRES_HOS=host.docker.internal , solo haz lo siguiente:

 definitions: steps: - step: &test name: test script: ... ... - >- docker run --env DATABASE_URL=postgresql://postgres@host.docker.internal/postgres --add-host host.docker.internal:$BITBUCKET_DOCKER_HOST_INTERNAL boilerplate /bin/bash -c /run-tests.sh
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda