A web app built with:
- Spring Boot
- React
- Docker, Kubernetes, Jenkins
- Java 8
- MySQL database
cd backend
./mvnw package
java -jar ./application/target/application-0.0.1-SNAPSHOT.jar- schema:
psi - username:
root - password:
pass
-
Jan Abacki
- username:
jan - password:
secret - role:
researcher
- username:
-
Lech Wojcik
- username:
lech - password:
secret - role:
syllabus_author
- username:
-
Jozef Malinowski
- username:
jozef - password:
secret - role:
program_committee
- username:
-
Marek Nowak
- username:
marek - password:
secret - role:
administrator
- username:
- NodeJS
- npm
npm install
npm run build # or: npm run startRun API tests:
docker-compose run api-tester http://nginx /test/courses_and_specialities_crud.yml --print-bodies=true- docker
- docker-compose
- minikube
docker-compose up -dThen open in browser http://psi.localhost
Endpoint /api will respond with 502 Bad Gateway until mvnw package finishes.
Check progress with: docker-compose logs -f backend
Status & logs:
docker-compose ps
docker-compose logs
docker-compose logs -f backend
docker-compose logs -f frontend
docker-compose exec nginx tail /var/log/nginx/psi.access.log
docker-compose exec nginx tail /var/log/nginx/psi.error.logShutdown:
docker-compose downStart cluster:
minikube start --extra-config=apiserver.service-node-port-range=80-30000Set up local registry:
kubectl create -f devops/prod/kubernetes/kube-registry.yaml
kubectl port-forward --namespace kube-system $(kubectl get po -n kube-system | grep kube-registry-v0 | \awk '{print $1;}') 5000:5000 # leave running in separate terminalBuild images and push to registry:
docker build -f devops/prod/docker/backend/Dockerfile -t team16-backend .
docker tag team16-backend localhost:5000/team16-backend
docker push localhost:5000/team16-backend
docker build -f devops/prod/docker/nginx/Dockerfile -t team16-nginx .
docker tag team16-nginx localhost:5000/team16-nginx
docker push localhost:5000/team16-nginxDeploy the app:
kubectl delete daemonsets,replicasets,services,deployments,pods,rc,persistentvolumeclaims --all
kubectl apply -f devops/prod/kubernetes
minikube service nginx --urlBuild Jenkins image and run (mount docker and docker.sock from host):
docker build -f devops/prod/docker/jenkins/Dockerfile -t team16-jenkins .
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -p 8080:8080 --name=jenkins-master team16-jenkinsConfigure Jenkins app (served on host endpoint - localhost:8080).
Rembember - kubernetes local registry must be set up on host and served (5000 port should be forwarded)
- Install default plugins
- Log in
- Create pipeline using given Jenkinsfile
- Use script
hooks/pre-pushto trigger first job
Retrigering builds by code changes (local):
- Make a change in code
- Retrigger changes using scipt below (provide USER and PASSWORD for Jenkins)
./hooks/pre-push $USER $PASS