Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

539
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda