Sign inSign up

juanheredia/nextjs

By juanheredia

Updated 5 months ago

Imagen reutilizable para cualquier proyecto Next.js

Image
0

248

juanheredia/nextjs repository overview

Next.js Base Image - Docker Híbrido

Imagen Docker reutilizable para cualquier proyecto Next.js. No necesitas reconstruir la imagen para cada proyecto.

Construir la Imagen Base (una sola vez)

docker build -f Dockerfile.base -t nextjs-base:latest .

Uso con docker-compose

Opción 1: Auto (Recomendado)

Monta el código y la imagen hace todo automáticamente:

services:
  nextjs:
    image: nextjs-base:latest
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - nextjs-modules:/app/node_modules
    env_file:
      - .env.local
docker-compose up -d
Opción 2: Solo Serve (Más rápido)

Para cuando ya hiciste npm run build localmente:

services:
  nextjs:
    image: nextjs-base:latest
    ports:
      - "3000:3000"
    volumes:
      - ./.next/standalone:/app
      - ./public:/app/public
    environment:
      - NEXTJS_MODE=serve
Opción 3: Desarrollo

Con hot reload:

services:
  nextjs:
    image: nextjs-base:latest
    ports:
      - "3000:3000"
    volumes:
      - .:/app
    environment:
      - NEXTJS_MODE=dev

Modos de Operación

NEXTJS_MODEDescripción
autoDetecta si necesita instalar/build y sirve
serveSolo sirve, asume build ya hecho
devModo desarrollo con hot reload

Requisitos

Tu next.config.js debe tener:

const nextConfig = {
  output: 'standalone',
}
module.exports = nextConfig

Sin docker-compose

# Construir imagen base (una vez)
docker build -f Dockerfile.base -t nextjs-base:latest .

# Ejecutar con cualquier proyecto
docker run -v /ruta/a/tu/proyecto:/app -p 3000:3000 nextjs-base

# Con variables de entorno
docker run -v $(pwd):/app -p 3000:3000 --env-file .env.local nextjs-base

Archivos

├── Dockerfile.base       # Imagen base reutilizable
├── docker-entrypoint.sh  # Script de auto-detección
├── docker-compose.yml    # Ejemplo de uso
└── DOCKER.md            # Esta documentación

Tag summary

Content type

Image

Digest

sha256:5de8633b8

Size

48.5 MB

Last updated

5 months ago

docker pull juanheredia/nextjs