Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blog Docker Multi-Container Project

Proyecto de ejemplo con 3 contenedores:

  • frontend: Nginx sirviendo archivos estáticos (HTML/JS/CSS) y proxy a la API.
  • backend: Node.js + Express que expone una API REST para posts.
  • db: PostgreSQL 15 con volumen persistente y script de inicialización.

Estructura

/frontend
  - index.html
  - app.js
  - style.css
  - nginx.conf
  - Dockerfile
/backend
  - package.json
  - index.js
  - Dockerfile
/db/init
  - init.sql
docker-compose.yml
README.md

Requisitos

  • Docker
  • Docker Compose

Usar

  1. Clonar el repositorio.
    git clone https://github.com/jonatcantor/simple-blog-docker.git
  2. Variables de entorno. Crear un archivo .env con las siguientes variables:
    # Puertos host:contenedor
    FRONTEND_PORT=8080
    BACKEND_PORT=5000
    POSTGRES_PORT=5432
    
    # Variables base de datos
    POSTGRES_USER=bloguser
    POSTGRES_PASSWORD=blogpass
    POSTGRES_DB=blogdb
    
    # Configuración backend
    DB_HOST=db
    DB_PORT=5432
    DB_USER=${POSTGRES_USER}
    DB_PASSWORD=${POSTGRES_PASSWORD}
    DB_NAME=${POSTGRES_DB}
    
    # Entorno (development | production)
    NODE_ENV=production
  3. Construir y levantar:
    docker compose up --build
  4. Abrir en el navegador:

Endpoints principales (API)

  • GET /posts -> Lista todas las entradas.
  • POST /posts -> Crea una entrada. Body JSON: { "title": "...", "content": "..." }
  • GET /health -> Estado del servicio.

Notas de implementación

  • El frontend hace peticiones a /api/*. Nginx en el contenedor frontend proxy_pass a http://backend:4000.
  • La base de datos se inicializa con db/init/init.sql (tabla posts y ejemplos).
  • Datos persistentes en el volumen db-data.

Comandos útiles

  • Ver logs: docker-compose logs -f
  • Listar contenedores: docker ps
  • Acceder al shell del backend: docker-compose exec backend sh

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages