GoViolin is a web app written in Go that helps with violin practice.
Currently hosted on Heroku at https://go-violin.herokuapp.com/
GoViolin allows practice over both 1 and 2 octaves.
Contains:
- Major Scales
- Harmonic and Melodic Minor scales
- Arpeggios
- A set of two part scale duet melodies by Franz Wohlfahrt
|--- Dockerfile # this is the docker file of the app
|--- Jenkinsfile # the file used by jenkins to create the pipeline , the pipeline is actually on machine is polling scm every 1 minute
|-- example_out_jenkins_pass.txt --> this is the output of one successful build of jenkins pipeline
|--- deployemnt.yaml # the file that describes kubernetes deployment scaled to 3 pods
|--- service.yaml # the file that describes the kubernetes service
in the dockerfile i used multistage docker to reduce the final image size
-
remove the image
docker rmi violin
-
build the image
docker build --tag violin .
-
remove the old container
docker rm violin_cont
-
run the container
docker run -d -p 8081:8081 --name violin_cont violin
-
list the containers
docker ps
-
stop the violin container
docker stop violin_cont
-
push image to registry
docker tag violin marait123/violin
docker push marait123/violin
-
the jenkins file has a number of stages the most important are
- allow jenkins to use docker
sudo usermod -a -G docker jenkins
- minikube to create the cluster and its nodes
- vmware is needed to create the
- kubectl to interact with the kubernetes master
- run
kubectl apply -f deployment.yaml
to create the deployment - run
kubectl apply -f service.yaml
to create the kubernetes service
-
in case you want to get the yaml files of
- deployment -->
kubectl get deployment violin-deploy -o yaml > deployment.yaml
- service -->
kubectl get service violin-deploy -o yaml > service.yaml
- deployment -->