-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose.yaml
More file actions
91 lines (84 loc) · 2.34 KB
/
compose.yaml
File metadata and controls
91 lines (84 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
services:
gitlab:
image: gitlab/gitlab-ce:latest
ports:
- "80:80"
- "443:443"
volumes:
- gitlab_data:/var/opt/gitlab
- gitlab_logs:/var/log/gitlab
- gitlab_config:/etc/gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url '${GITLAB_EXTERNAL_URL}' # Replace with your actual DNS (use HTTPS if NPM handles SSL)
gitlab_rails['initial_root_password'] = '${GITLAB_ROOT_PASSWORD}' # Use env var for security
restart: unless-stopped
networks:
- devops_net
jenkins:
image: jenkins/jenkins:lts
ports:
- "8080:8080"
volumes:
- jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock # For Docker-in-Docker (secure with user perms if possible)
environment:
JAVA_OPTS: "-Djenkins.install.runSetupWizard=false"
restart: unless-stopped
networks:
- devops_net
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
environment:
GF_SECURITY_ADMIN_PASSWORD: '${GRAFANA_ADMIN_PASSWORD}' # Use env var for security
restart: unless-stopped
networks:
- devops_net
loki:
image: grafana/loki:latest
ports:
- "3100:3100"
volumes:
- ./loki-config.yml:/etc/loki/local-config.yaml
command: -config.file=/etc/loki/local-config.yaml
restart: unless-stopped
networks:
- devops_net
prometheus:
image: prom/prometheus:latest
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
restart: unless-stopped
networks:
- devops_net
webpage:
image: nginx:alpine
ports:
- "8081:80"
volumes:
- ./webpage:/usr/share/nginx/html
environment:
- GITLAB_URL=${GITLAB_URL}
- JENKINS_URL=${JENKINS_URL}
- GRAFANA_URL=${GRAFANA_URL}
- PROMETHEUS_URL=${PROMETHEUS_URL}
- LOKI_URL=${LOKI_URL}
command: sh -c "envsubst < /usr/share/nginx/html/index.html.template > /usr/share/nginx/html/index.html && nginx -g 'daemon off;'"
restart: unless-stopped
networks:
- devops_net
volumes:
gitlab_data:
gitlab_logs:
gitlab_config:
jenkins_home:
grafana_data:
networks:
devops_net:
driver: bridge