Skip to content
Code and Bytes Code and Bytes

Code and Bytes
Code and Bytes

Configurar PostgreSQL en Laravel con Docker (incluyendo pgvector)

Posted on 22 March, 202611 April, 2026

Si estás montando un proyecto Laravel y quieres una base de datos PostgreSQL aislada con Docker, esta configuración te deja todo listo en pocos pasos.

¿Qué vas a tener al final?

  • Laravel conectado a PostgreSQL por DB_CONNECTION=pgsql
  • Contenedor Docker con la imagen pgvector/pgvector:pg16
  • Script de inicialización que:
    • Habilita la extensión vector
    • Crea la base de datos

1. Variables de entorno en Laravel

.env

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=tu_base_de_datos
DB_USERNAME=laravel
DB_PASSWORD=secret

2. Definir el servicio PostgreSQL en Docker Compose

docker-compose.yml

services:
  postgres:
    image: pgvector/pgvector:pg16
    environment:
      POSTGRES_DB: ${DB_DATABASE}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    ports:
      - "${DB_PORT}:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data
      - ./docker/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U ${DB_USERNAME} -d ${DB_DATABASE}" ]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  postgres_data:

3. Script de inicialización de PostgreSQL

 docker/postgres/init.sql

-- Habilitar extensión pgvector
CREATE EXTENSION IF NOT EXISTS vector;

-- Crear base de datos de tests
CREATE DATABASE tu_base_de_datos_test;

-- Verificar que la extensión está instalada
SELECT * FROM pg_extension WHERE extname = 'vector';

5. Conectar Laravel y correr migraciones

php artisan migrate

6. Pruebas automatizadas con base de datos separada

Para que las pruebas pasen con postgres actualiza el archivo phpunit.xml actualizando los valores a:

<env name="DB_CONNECTION" value="pgsql"/>
<env name="DB_DATABASE" value="tu_base_de_datos_test"/>
DevOps

Post navigation

Previous post
Next post

Related Posts

DevOps

Solucionando el error “Connection refused” al ejecutar tests de PHPUnit en GitHub Actions

Posted on 23 March, 202611 April, 2026

Hace poco me encontré con un error bastante común (pero frustrante) al ejecutar tests de PHPUnit en GitHub Actions usando Laravel. Localmente todo funcionaba perfecto, pero en CI los tests fallaban inmediatamente con un error de conexión a la base de datos. El problema Al ejecutar los tests en GitHub…

Read More
DevOps

Configuración de despliegue automático con llaves SSH y GitHub Actions

Posted on 7 October, 202511 April, 2026

Automatizar el despliegue de tus proyectos puede ahorrarte tiempo y reducir errores. En esta guía, te explico cómo configurar un despliegue automático utilizando llaves SSH y GitHub Actions.

Read More

Usar una Deploy Key diferente para cada repositorio en un mismo servidor

Posted on 18 July, 2026

Cuando un servidor necesita acceder a varios repositorios privados de GitHub, una buena práctica es utilizar una Deploy Key independiente para cada repositorio, en lugar de compartir la misma llave SSH entre todos. Este enfoque ofrece varias ventajas: En este artículo veremos cómo configurar una llave SSH distinta para cada…

Read More

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Buscar

Categorias

  • AI (2)
  • Asterisk (9)
  • Bases de datos (1)
  • DevOps (4)
  • Git (2)
  • HTML (1)
  • Laravel (6)
  • Linux (67)
  • MCP Server (1)
  • Mikrotik (3)
  • MySQL (5)
  • n8n (1)
  • Personal (4)
  • PHP (15)
  • Python (2)
  • Software recomendado (1)
  • Tips (1)
  • VSCode (4)
  • vTiger (4)
  • Windows (10)
  • Wordpress (4)
©2026 Code and Bytes | WordPress Theme by SuperbThemes