Skip to content

mmorejon/erase-una-vez-5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

erase-una-vez-5

English

Portada Libro Érase una vez Kubernetes

📚 Volúmenes OCI de Datos

Su función es generar Imágenes de Contenedor "Data-Only": imágenes que no tienen sistema operativo ni ejecutan nada, simplemente sirven como un "pendrive" para transportar tus archivos a cualquier clúster de Kubernetes o entorno Docker.

Este repositorio es un ejemplo práctico creado para el libro "Érase una vez Kubernetes".

👇 Consigue la edición actualizada 2025 aquí: 👇

Amazon LeanPub

⚡ ¿Qué tiene de especial?

  • Simplicidad Docker: Se construye utilizando un Dockerfile estándar y la imagen base scratch.
  • Ultraligera: Al usar FROM scratch, la imagen no contiene nada más que tus archivos. Su peso es exacto al de tus datos.
  • Compatibilidad Total: Funciona con cualquier registro (Docker Hub, GHCR, AWS ECR) y herramienta que soporte imágenes OCI.
  • Multi-Arquitectura: Configurado para generar imágenes compatibles con amd64 y arm64 automáticamente mediante Docker Buildx.

📦 Cómo consumir los datos

Como esta imagen no tiene sistema operativo (scratch), no tiene shell (/bin/sh) ni ejecutables. No puedes hacer docker run de forma tradicional. Úsala para:

A) Copiar datos en tiempo de construcción (Dockerfile)

Ideal para inyectar datos en otras imágenes.

# 1. Pull our data
FROM ghcr.io/mmorejon/erase-una-vez-5:main AS my-files

# 2. Copy our files to our real application (e.g. Nginx)
FROM nginx:alpine
COPY --from=my-files / /usr/share/nginx/html/

Construye la imagen e inicia el contenedor.

# Build the image
docker image build --tag server .

# Run the container
docker container run --detach --publish 8080:80 server

Accede a los ficheros incluidos en la imagen.

curl http://localhost:8080/example-1.txt
> Érase una vez Kubernetes

B) Usar como Volumen en Kubernetes (v1.35+)

Si tu clúster admite la funcionalidad Image Volumes, puedes montarla directamente. Si no tienes un clúster de Kubernetes, puedes usar el repositorio de ejercicios del libro Érase una vez Kubernetes.

ℹ️ Referencia: Para más detalles sobre esta funcionalidad, consulta el anuncio oficial en el blog de Kubernetes: Support for mounting OCI images as volumes (v1.35 Sneak Peek).

https://github.com/mmorejon/erase-una-vez-k8s

apiVersion: v1
kind: Pod
metadata:
  name: erase-una-vez-5
spec:
  containers:
  - name: server
    image: nginx:alpine
    volumeMounts:
    - name: volume
      mountPath: /usr/share/nginx/html/
  volumes:
  - name: volume
    image:
      reference: ghcr.io/mmorejon/erase-una-vez-5:main
      pullPolicy: IfNotPresent

Para probarlo, puedes usar el siguiente comando:

kubectl apply -f https://raw.githubusercontent.com/mmorejon/erase-una-vez-5/refs/heads/main/manifest.yaml

kubectl exec erase-una-vez-5 -- cat /usr/share/nginx/html/example-1.txt
> Érase una vez Kubernetes

🤝 Comunidad y Feedback

  1. ¿Te ha sido útil? Dale una estrella al repositorio (arriba a la derecha). Nos ayuda a llegar a más ingenieros.
  2. 📚 ¿Aún no tienes el libro? Compra el libro en Amazon o Leanpub.

About

Imágenes de contenedor ultraligeras (Scratch) para distribución de datos y volúmenes en Kubernetes.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors