@@ -14,14 +14,50 @@ jobs:
14
14
run : docker build -t ${{ secrets.DOCKER_USERNAME }}/devops-webapp .
15
15
- name : Push Docker Image
16
16
run : docker push ${{ secrets.DOCKER_USERNAME }}/devops-webapp
17
+ - name : Build and push prometheus image
18
+ run : |
19
+ docker build -t ${{ secrets.DOCKER_USERNAME }}/custom-prometheus ./prometheus
20
+ docker push ${{ secrets.DOCKER_USERNAME }}/custom-prometheus
17
21
- name : SSH into Azure VM and deploy
18
22
uses : appleboy/ssh-action@master
19
23
with :
20
24
host : ${{ secrets.VM_HOST }}
21
25
username : ${{ secrets.VM_USER }}
22
26
key : ${{ secrets.VM_KEY }}
23
27
script : |
28
+ # Create network if not exists
29
+ docker network create devops-net || true
30
+
31
+ # Pull Latest Images
24
32
docker pull ${{ secrets.DOCKER_USERNAME }}/devops-webapp
25
- docker stop webapp || true && docker rm webapp || true
26
- docker run -d -p 80:5000 --name webapp ${{ secrets.DOCKER_USERNAME }}/devops-webapp
27
-
33
+ docker pull ${{ secrets.DOCKER_USERNAME }}/custom-prometheus
34
+
35
+ # Stop Old containers
36
+ docker stop web-app || true && docker rm web-app || true
37
+ docker stop prometheus || true && docker rm prometheus || true
38
+ docker stop grafana || true && docker rm grafana || true
39
+ docker stop cadvisor || true && docker rm cadvisor || true
40
+
41
+ # Run new containers in same network
42
+ docker run -d --name web-app --network devops-net -p 5000:5000 ${{ secrets.DOCKER_USERNAME }}/devops-webapp
43
+ # RUN Prometheus (Custom image with prometheus.yml baked in)
44
+ docker run -d --name prometheus --network devops-net -p 9090:9090 ${{ secrets.DOCKER_USERNAME }}/custom-prometheus
45
+
46
+
47
+ # Start Grafana if not running
48
+ docker run -d --name=grafana \
49
+ --network devops-net \
50
+ -p 3000:3000 \
51
+ grafana/grafana
52
+
53
+ # Start cAdvisor for metrics
54
+ docker ps -q -f name=cadvisor || docker run -d \
55
+ --name cadvisor \
56
+ --network devops-net \
57
+ -p 9323:9323 \
58
+ -v /var/run/docker.sock:/var/run/docker.sock \
59
+ -v /:/rootfs:ro \
60
+ -v /var/run:/var/run:ro \
61
+ -v /sys:/sys:ro \
62
+ -v /var/lib/docker/:/var/lib/docker:ro \
63
+ google/cadvisor:latest
0 commit comments