This is a basic integration project. The main scope is to experiment and learn about container-based apps and containerization.
The main tools used are:
Steps to run it inside Kubernetes:
- Install Kubectl and Minikube
- Start the minikube with:
- Windows 10 with Hyper-V: link
minikube start --vm-driver=hyperv --hyperv-virtual-switch="minikube-switch"
- Other:
minikube start
- Windows 10 with Hyper-V: link
- Enable metrics:
minikube addons enable metrics-server
- Install Helm
- Deploy using Helm:
helm install --name db -f ./production/mongo-values.yaml stable/mongodb
helm install --name app ./production/app-chart/
- Add an autoscaler:
kubectl autoscale deployment app --cpu-percent=30 --max=4
- Access the app with:
minikube service app
- Access the dashboard with:
minikube dashboard
Steps to update the image stored in DockerHub:
- Transpile the code with Babel:
npm run build
- Build and tag the image locally:
docker build -f ./production/Dockerfile -t memignone/basic-node-app:latest .
- Push it to Docker Hub:
docker push memignone/basic-node-app:latest