forked from radum/performance-testing-framework
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
173 lines (173 loc) · 5.59 KB
/
docker-compose.yml
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
version: '3'
services:
wpt_server:
container_name: wpt_server
image: webpagetest/server:latest
volumes:
- ./wpt_data/dat:/var/www/html/dat
- ./wpt_data/results:/var/www/html/results
- ./wpt_data/logs:/var/www/html/logs
- ./wpt-server/settings/locations.ini:/var/www/html/settings/locations.ini
- ./wpt-server/settings/settings.ini:/var/www/html/settings/settings.ini
ports:
- 4000:80
restart: unless-stopped
wpt_agent:
container_name: wpt_agent
image: webpagetest/agent:latest
shm_size: '2gb'
environment:
# TODO: Explore why I can't use http://wpt_server:4000/work/
SERVER_URL: http://localhost:4000/work/
LOCATION: Local_Docker
NAME: default-wpt-agent
EXTRA_ARGS: "--log /debug.log -vvvv"
depends_on:
- wpt_server
ports:
- "4001:80"
privileged: true
network_mode: "host"
extra_hosts:
- "local.dev:10.8.10.11"
env_file:
- wpt.env
restart: unless-stopped
sitespeed.io:
container_name: sitespeed.io
image: sitespeedio/sitespeed.io:12.1.0-plus1
command: -V
shm_size: 2g
volumes:
- ./reports/sitespeed-result/:/sitespeed.io/sitespeed-result
lhci-server:
container_name: lhci-server
build: ./lhci-server
ports:
- "9001:9001"
volumes:
- ./reports/lhci-server/:/data
restart: unless-stopped
lhci-client:
container_name: lhci-client
build: ./lhci-client
command: -V
shm_size: 1g
volumes:
- ./reports/lhci-client/:/home/lhci/reports/.lighthouseci
k6:
container_name: k6
image: loadimpact/k6:latest
ports:
- "6565:6565"
environment:
- K6_OUT=influxdb=http://influxdb:8086/k6
volumes:
- ./k6/scripts:/scripts
grafana:
container_name: grafana
build: ./grafana
depends_on:
- graphite
links:
- graphite
- influxdb:influxdb
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=hdeAga76VG6ga7plZ1
- GF_SECURITY_ADMIN_USER=sitespeedio
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_USERS_ALLOW_SIGN_UP=false
- GF_USERS_ALLOW_ORG_CREATE=false
- GF_INSTALL_PLUGINS=briangann-datatable-panel,raintank-worldping-app
volumes:
- grafana:/var/lib/grafana
restart: unless-stopped
grafana-setup:
image: sitespeedio/grafana-bootstrap:11.3.0
links:
- grafana
environment:
- GF_PASSWORD=hdeAga76VG6ga7plZ1
- GF_USER=sitespeedio
graphite:
container_name: graphite
image: sitespeedio/graphite:1.1.5-12
ports:
- "2003:2003"
- "8080:80"
restart: unless-stopped
volumes:
# In production you should configure/map these to your container
# Make sure whisper and graphite.db/grafana.db lives outside your containerr
# https://www.sitespeed.io/documentation/sitespeed.io/graphite/#graphite-for-production-important
- whisper:/opt/graphite/storage/whisper
# Download an empty graphite.db from https://github.com/sitespeedio/sitespeed.io/tree/master/docker/graphite
# - /absolute/path/to/graphite/graphite.db:/opt/graphite/storage/graphite.db
#
# And put the configuration files on your server, configure them as you need
# Download from https://github.com/sitespeedio/docker-graphite-statsd/tree/master/conf/graphite
# - /absolute/path/to/graphite/conf/storage-schemas.conf:/opt/graphite/conf/storage-schemas.conf
# - /absolute/path/to/graphite/conf/storage-aggregation.conf:/opt/graphite/conf/storage-aggregation.conf
# - /absolute/path/to/graphite/conf/carbon.conf:/opt/graphite/conf/carbon.conf
influxdb:
container_name: influxdb
image: influxdb:latest
ports:
- "8086:8086"
environment:
- INFLUXDB_DB=k6
restart: unless-stopped
jenkins:
container_name: jenkins
# image: jenkins/jenkins:lts
build: ./jenkins
shm_size: '2gb'
cap_add:
# Run the container with SYS_ADMIN privileges so Chrome can sandbox processes. This is needed by LHCI.
- SYS_ADMIN
ports:
- "8181:8080"
- "50000:50000"
environment:
# JENKINS_URL_CONFIG variable is used to set jenkins_url variable in jenkins global configuration.
# This url will be used to create links to jenkins builds in grafana dashboards, default is http://127.0.0.1:8181/
# Slash '/' should be escaped with '\'
# - JENKINS_URL_CONFIG=http:\/\/127.0.0.1:8181\/
# JENKINS_GRAFANA_URL is used for generating link to grafana report in jenkins job description
# default value is 127.0.0.1:8857
# - JENKINS_GRAFANA_URL=127.0.0.1:8857
- JENKINS_ADMIN_LOGIN=admin
- JENKINS_ADMIN_PASSWORD=admin
- SITESPEED_REPORT_PATH=$PWD/reports/sitespeed-result/
- LHCI_REPORT_PATH=$PWD/reports/lhci-client/
- K6_REPORT_PATH=$PWD/reports/k6/
- K6_SCRIPTS_PATH=$PWD/k6/scripts/
volumes:
- ./wpt-server/scripts/:/var/lib/wpt-scripts/
- ./reports/sitespeed-result/:/var/lib/sitespeed.io/sitespeed-result/
- ./reports/lhci-client/:/var/lib/lhci/lhci-result/
- ./reports/k6/:/var/lib/k6/k6-result/
- /var/run/docker.sock:/var/run/docker.sock
- jenkins-home:/var/jenkins_home
restart: unless-stopped
# portainer:
# container_name: portainer
# image: portainer/portainer
# ports:
# - "9000:9000"
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# restart: unless-stopped
volumes:
whisper:
# webpagetest-results:
# webpagetest-settings:
# webpagetest-logs:
# sitespeed:
# grafana-home:
# grafana-conf:
influxdb:
grafana:
jenkins-home: