-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
126 lines (112 loc) · 3.99 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
version: '3.8'
name: dashboard
services:
# TIMESCALE DB ##################################################
timescaledb:
container_name: timescaledb
build:
context: ./timescaledb
dockerfile: timescaledb.Dockerfile
# dockerfile: postgres_timescaledb_postgis.Dockerfile
restart: unless-stopped
ports:
- ${POSTGRES_PORT}:5432
volumes:
- timescaledb-data:/var/lib/postgresql/data #timescaledb
# - timescaledb-data:/home/postgres/pgdata/data #timescaledb-ha
env_file:
- .env
# PGADMIN ###################################################
# TODO: figure out a way to make this work with the .env file and not hard coded server.json
# More info: https://stackoverflow.com/questions/66578506/where-is-the-pgpass-file-in-pgadmin4-docker-container-when-this-file-is-mounted/69475874#69475874
pgadmin:
container_name: pgadmin
image: dpage/pgadmin4:latest
ports:
- ${PGADMIN_PORT}:80
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD}
volumes:
# - ./pgadmin/servers.json:/pgadmin4/servers.json
- pgadmin-data:/var/lib/pgadmin
# - ./pgadmin/pgpass:/pgadmin4/pgpass # passwords for the connections in this file
# /var/lib/pgadmin/storage/<USERNAME>_<DOMAIN>/
# entrypoint: >
# /bin/sh -c "
# mkdir -m 700 /var/lib/pgadmin/storage/admin_admin.com;
# chown -R pgadmin:pgadmin /var/lib/pgadmin/storage/admin_admin.com;
# cp -prv /pgadmin4/pgpass /var/lib/pgadmin/storage/admin_admin.com/;
# chmod 600 /var/lib/pgadmin/storage/admin_admin.com/pgpass;
# /entrypoint.sh
# "
depends_on:
- timescaledb
env_file:
- .env
# TELEGRAF ##################################################
telegraf:
container_name: telegraf
image: telegraf:latest
user: telegraf:999 # <--- TODO important, calculate user that owns docker.sock -> $(stat -c '%g' /var/run/docker.sock)
network_mode: host
volumes:
- /:/hostfs:ro
- /var/run/docker.sock:/var/run/docker.sock
- ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
environment:
HOST_PROC: /hostfs/proc
HOST_ETC: /hostfs/etc
HOST_SYS: /hostfs/sys
HOST_VAR: /hostfs/var
HOST_RUN: /hostfs/run
HOST_MOUNT_PREFIX: /hostfs
restart: always
depends_on:
- timescaledb
env_file:
- .env
# SUPERSCRAPER ##################################################
superscraper:
container_name: superscraper
build:
context: ./superscraper
dockerfile: superscraper.Dockerfile
volumes:
- ./superscraper:/workspaces/superscraper
ports:
- ${SCRAPER_HEALTHKIT_PORT}:${SCRAPER_HEALTHKIT_PORT}
- ${SCRAPER_MAPS_PORT}:${SCRAPER_MAPS_PORT}
- ${SCRAPER_SCREENTIME_PORT}:${SCRAPER_SCREENTIME_PORT}
# Overrides default command so things don't shut down after the process ends.
# command: sleep infinity
# Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
# network_mode: service:timescaledb
# Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
# (Adding the "ports" property to this file will not forward from a Codespace.)
# depends_on:
# - timescaledb
env_file:
- .env
# GRAFANA ##################################################
grafana:
container_name: grafana
image: grafana/grafana:main
ports:
- ${GRAFANA_PORT}:3000
volumes:
- grafana-data:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
# - ./grafana/data/dashboards:/etc/dashboards
depends_on:
- timescaledb
- telegraf
env_file:
- .env
# Add "forwardPorts": ["5432"] to **devcontainer.json** to forward PostgreSQL locally.
# (Adding the "ports" property to this file will not forward from a Codespace.)
volumes:
prometheus-data:
timescaledb-data:
grafana-data:
pgadmin-data: