-
-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathdev.compose.yaml
More file actions
177 lines (169 loc) · 4.36 KB
/
dev.compose.yaml
File metadata and controls
177 lines (169 loc) · 4.36 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
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
174
175
176
177
x-poll-config: &poll-config
POLL_CONFIG: |
- url: https://github.com/kimdre/doco-cd_tests.git
#url: git@github.com:kimdre/doco-cd_tests.git
reference: with-submodule
interval: 10
#target: "bitwarden-sm"
services:
app:
container_name: doco-cd
build:
context: .
dockerfile: Dockerfile
args:
- APP_VERSION=dev
pull_policy: build
restart: unless-stopped
depends_on:
proxy:
condition: "service_started"
apprise:
condition: "service_started"
required: false
ports:
- "80:80"
- "9120:9120"
env_file:
- .env
environment:
TZ: Europe/Berlin
HTTP_PORT: 80
LOG_LEVEL: debug
# DOCKER_API_VERSION: 1.47
<<: *poll-config
#POLL_CONFIG_FILE: /poll.yml
#HTTP_PROXY: http://username:password@proxy:8888
#SSH_PRIVATE_KEY_FILE: /run/secrets/ssh-private-key
#APPRISE_API_URL: http://apprise:8000/notify
#APPRISE_NOTIFY_LEVEL: info
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- data:/data
# secrets:
# - ssh-private-key
# - source: docker-config
# target: /root/.docker/config.json
# configs: # Use with POLL_CONFIG_FILE
# - source: poll.yml
# target: /poll.yml
proxy:
image: vimagick/tinyproxy:latest
restart: unless-stopped
ports:
- "8888:8888"
environment:
TZ: Europe/Berlin
configs:
- source: tinyproxy.conf
target: /etc/tinyproxy/tinyproxy.conf
apprise:
profiles:
- notifications
image: caronc/apprise:latest
restart: unless-stopped
ports:
- "8000:8000"
environment:
TZ: Europe/Berlin
APPRISE_WORKER_COUNT: 1
#healthcheck:
# test: [ "CMD", "curl", "-f", "http://localhost:8000/" ]
# interval: 2s
# timeout: 5s
# retries: 10
grafana:
# Dashboard: https://github.com/kimdre/doco-cd/discussions/583
profiles:
- monitoring
image: grafana/grafana:12.3.0
restart: unless-stopped
user: "1000"
ports:
- "3300:3000"
post_start:
- command: sh -c "mkdir -p /var/lib/grafana/dashboards/; curl -fsSL https://grafana.com/api/dashboards/23980/revisions/latest/download -o /var/lib/grafana/dashboards/doco-cd.json"
user: root
environment:
TZ: Europe/Berlin
configs:
- source: grafana-datasources.yaml
target: /etc/grafana/provisioning/datasources/datasources.yaml
- source: grafana-dashboards.yaml
target: /etc/grafana/provisioning/dashboards/dashboards.yaml
prometheus:
depends_on:
- app
profiles:
- monitoring
restart: unless-stopped
image: prom/prometheus:v3.8.0
ports:
- "9090:9090"
volumes:
# - ./prometheus:/etc/prometheus
- prometheus-data:/prometheus
configs:
- source: prometheus.yaml
target: /etc/prometheus/prometheus.yaml
command:
- --web.enable-lifecycle
- --config.file=/etc/prometheus/prometheus.yaml
- --storage.tsdb.retention.size=100MB
- --storage.tsdb.wal-compression
environment:
TZ: Europe/Berlin
volumes:
data:
prometheus-data:
#secrets:
# ssh-private-key:
# file: ./ed25519
# docker-config:
# file: docker-config.json
configs:
poll.yml:
content: |
- url: https://example.com
branch: main
- url: https://other-example.com
interval: 120
- url: https://yet-another-example.com
branch: dev
tinyproxy.conf:
content: |
# https://tinyproxy.github.io/
LogLevel Warning
Port 8888
Timeout 600
BasicAuth username password
prometheus.yaml:
content: |
global:
scrape_interval: 10s
scrape_configs:
- job_name: doco-cd
static_configs:
- targets: ['doco-cd:9120']
grafana-datasources.yaml:
content: |
apiVersion: 1
datasources:
- name: DS_PROMETHEUS
type: prometheus
url: http://prometheus:9090
isDefault: true
grafana-dashboards.yaml:
content: |
apiVersion: 1
providers:
- name: doco-cd
orgId: 1
folder: ""
type: file
disableDeletion: false
editable: true
updateIntervalSeconds: 300
options:
path: /var/lib/grafana/dashboards
foldersFromFilesStructure: false