Aplicacion en Node.JS, que tenga las siguientes funcionalidades:
- Subir ficheros
- Obtener ficheros subidos
- Crear usuarios
- Usuario/Password
- Autenticar usuarios
- Asignar permisos a los ficheros subidos
S3, Simple Storage Service de Amazon MinIO - Open Source
docker run -p 9002:9002 -p 9003:9003 -v $PWD/minio-data:/data \
quay.io/minio/minio server /data --address=":9002" --console-address ":9003"
Lanzar postgres base de datos
docker run -d \
--name some-postgres \
-p 5436:5432 \
-e POSTGRES_PASSWORD=postgres \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v $PWD/postgres-data:/var/lib/postgresql/data \
postgres:14.2-alpine
Lanzar portainer, dashboard de docker
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9900:9000 -p 9443:9443 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.9.3
- Construir un Dockerfile
- Construir la imagen Docker
- Probar imagen docker en local
- Subir la imagen Docker a un registro de contenedores (Docker Hub, quay.io, ghcr.io)
- Crear un cluster de Kubernetes
- Desplegar contenedor en Kubernetes
- Probar el servicio
Construir imagen:
docker build -t kfsoftware/curso-nodejs:1.0.1 .
Subir la imagen a docker hub:
docker push kfsoftware/curso-nodejs:1.0.1
Lanzar imagen:
docker run --rm --network host --name curso-nodejs kfsoftware/curso-nodejs:1.0.1
Instalar KinD: https://kind.sigs.k8s.io/
kind create cluster
kubectl create deployment curso --image=kfsoftware/curso-nodejs:1.0.1
Crear un servicio
kubectl expose deployment curso --port=80 --target-port=3000
Acceder al servicio
kubectl port-forward svc/curso 3002:80