Last active
July 26, 2021 15:01
-
-
Save tedder/e40460e92adbff07f6890806e12eb444 to your computer and use it in GitHub Desktop.
helium validator + watchtower (with consensus check) + exporter
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
# launch: docker-compose up -d | |
version: "3.7" | |
services: | |
validator: | |
image: quay.io/team-helium/validator:latest-validator-amd64 | |
container_name: validator | |
init: true | |
restart: always | |
ports: | |
- "2154:2154" | |
- "127.0.0.1:4467:4467" # jsonrpc | |
volumes: | |
- "${HOME}/validator_data/:/var/data" | |
labels: | |
"com.centurylinklabs.watchtower.lifecycle.pre-update": > | |
sh -c 'while [ "$$(miner info in_consensus)" == "true" ]; do echo "in consensus, loop-waiting"; sleep 30; done' | |
"com.centurylinklabs.watchtower.lifecycle.pre-update-timeout": 43200 # 12hrs should be longer than a validator is in the consensus group. | |
val_watchtower: | |
image: containrrr/watchtower:latest | |
container_name: val_watchtower | |
restart: always | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
command: validator miner_exporter # the container name(s) to monitor | |
environment: | |
- WATCHTOWER_POLL_INTERVAL=21600 # check for new image every 6 hrs | |
- WATCHTOWER_LIFECYCLE_HOOKS=true | |
#- WATCHTOWER_DEBUG=true # uncomment to see watchtower waiting for consensus | |
miner_exporter: | |
image: ghcr.io/tedder/miner_exporter:latest | |
container_name: miner_exporter | |
restart: always | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
ports: | |
- "127.0.0.1:9825:9825" |
Thanks for writing this docker-compose.yml file. I believe the volume mount for 'validator' container should be
volumes:
- "${HOME}/validator_data:/var/data"
@philltran removing a trailing slash? It should work either way.
You are right. The issue I was having was with the quay tag. I needed to use validator
for the main net and not val
for testnet.
good call! I was having trouble mentally diffing it.
@tedder Don't you need a "restart: always" in each service section so that everything will start on reboot?
@jkowalcz not a bad idea. added.
Might want to add 8080 port for light hotspots
https://gist.github.com/rootulp/4fe3a7e420237a5632f3201faa246ab4 has two editions to this docker-compose.yml
- Expose
8080
per deployment guide - Increase
ulimit
s to avoidNo file descriptors available
error
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I think you are going to need a "restart: always" in each service section so that everything will start on reboot?