Created
August 8, 2023 12:22
-
-
Save vpavlin/4723507b16044450a2c64d3236a127bf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: "3.7" | |
x-logging: &logging | |
logging: | |
driver: json-file | |
options: | |
max-size: 1000m | |
x-pg-pass: &pg_pass ${POSTGRES_PASSWORD:-test123} | |
services: | |
nwaku: | |
# Provide the image using any of these methods | |
# Method 1. Custom build | |
# For a custom build, requires building your image | |
# from nwaku repo: docker build -t nwaku:mytag . | |
#image: nwaku:mytag | |
# Method 2. Pre-built image (master commit) | |
# For a pre-built image, use the firt 8 digits of the commit hash | |
# all commits in nwaku master al built and pushed to dockerhub | |
# See: hub.docker.com/r/statusteam/nim-waku | |
#image: statusteam/nim-waku:982cd282 | |
# Method 3. Pre-built release | |
# For a pre-built release. See available releases: | |
# github.com/waku-org/nwaku/releases | |
image: statusteam/nim-waku:v0.19.0-rc.0 | |
restart: on-failure | |
ports: | |
- 30304:30304/tcp | |
- 30304:30304/udp | |
- 127.0.0.1:8545:8545/tcp | |
- 9005:9005/udp | |
- 127.0.0.1:8003:8003 | |
<<: *logging | |
volumes: | |
- ./data:/data:Z | |
- ./run_node.sh:/opt/run_node.sh:Z | |
entrypoint: sh | |
command: | |
- /opt/run_node.sh | |
environment: | |
POSTGRES_PASSWORD: *pg_pass | |
depends_on: | |
- postgres | |
prometheus: | |
image: docker.io/prom/prometheus:latest | |
volumes: | |
- ./monitoring/prometheus-config.yml:/etc/prometheus/prometheus.yml:Z | |
command: | |
- --config.file=/etc/prometheus/prometheus.yml | |
ports: | |
- 127.0.0.1:9090:9090 | |
restart: on-failure | |
depends_on: | |
- postgres-exporter | |
- nwaku | |
grafana: | |
image: docker.io/grafana/grafana:latest | |
env_file: | |
- ./monitoring/configuration/grafana-plugins.env | |
volumes: | |
- ./monitoring/configuration/grafana.ini:/etc/grafana/grafana.ini:Z | |
- ./monitoring/configuration/dashboards.yaml:/etc/grafana/provisioning/dashboards/dashboards.yaml:Z | |
- ./monitoring/configuration/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml:Z | |
- ./monitoring/configuration/dashboards:/var/lib/grafana/dashboards/:Z | |
- ./monitoring/configuration/customizations/custom-logo.svg:/usr/share/grafana/public/img/grafana_icon.svg:Z | |
- ./monitoring/configuration/customizations/custom-logo.svg:/usr/share/grafana/public/img/grafana_typelogo.svg:Z | |
- ./monitoring/configuration/customizations/custom-logo.png:/usr/share/grafana/public/img/fav32.png:Z | |
ports: | |
- 127.0.0.1:3000:3000 | |
restart: on-failure | |
depends_on: | |
- prometheus | |
postgres: | |
# This service is used when the Waku node has the 'store' protocol enabled | |
# and the store-message-db-url is set to use Postgres | |
image: postgres:alpine3.18 | |
restart: on-failure | |
environment: | |
POSTGRES_PASSWORD: *pg_pass | |
healthcheck: | |
test: ["CMD-SHELL", "pg_isready", "-d", "db_prod"] | |
interval: 30s | |
timeout: 60s | |
retries: 5 | |
start_period: 80s | |
postgres-exporter: | |
# Service aimed to scrape information from Postgres and post it to Prometeus | |
image: quay.io/prometheuscommunity/postgres-exporter:v0.12.0 | |
restart: on-failure | |
volumes: | |
- ./monitoring/configuration/postgres-exporter.yml:/etc/pgexporter/postgres-exporter.yml | |
- ./monitoring/configuration/pg-exporter-queries.yml:/etc/pgexporter/queries.yml | |
ports: | |
- 127.0.0.1:9187:9187 | |
command: | |
# Both the config file and 'DATA_SOURCE_NAME' should contain valid connection info | |
- --config.file=/etc/pgexporter/postgres-exporter.yml | |
environment: | |
POSTGRES_PASSWORD: *pg_pass | |
DATA_SOURCE_URI: postgres?sslmode=disable | |
DATA_SOURCE_USER: postgres | |
DATA_SOURCE_PASS: *pg_pass | |
PG_EXPORTER_EXTEND_QUERY_PATH: /etc/pgexporter/queries.yml | |
depends_on: | |
- postgres |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment