break out compose and docker files for compile vs no-compile options
parent
74d800614d
commit
7d31fda77d
@ -0,0 +1,25 @@
|
||||
.PHONY: format help
|
||||
|
||||
# Help system from https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
help:
|
||||
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
up: ## Build and run the required containers by fetching binaries
|
||||
docker-compose -f docker-compose.nocompile.yaml up -d
|
||||
|
||||
up-full: ## Build and run the required containers by compiling source
|
||||
docker-compose -f docker-compose.compile.yaml up -d
|
||||
|
||||
down: ## Stop the containers
|
||||
docker-compose -f docker-compose.nocompile.yaml up -d
|
||||
|
||||
down-full: ## Stop the containers
|
||||
docker-compose -f docker-compose.compile.yaml up -d
|
||||
|
||||
logs: ## Get logs from the containers
|
||||
docker-compose -f docker-compose.nocompile.yaml up -d
|
||||
|
||||
logs-full: ## Get logs from the containers
|
||||
docker-compose -f docker-compose.compile.yaml up -d
|
@ -0,0 +1,68 @@
|
||||
version: '3'
|
||||
volumes:
|
||||
grafana:
|
||||
prometheus:
|
||||
services:
|
||||
prometheus:
|
||||
image: prom/prometheus:v2.18.0
|
||||
container_name: prometheus
|
||||
restart: unless-stopped
|
||||
command:
|
||||
- --config.file=/etc/prometheus/prometheus.yml
|
||||
- --storage.tsdb.path=/prometheus
|
||||
- --web.console.libraries=/usr/share/prometheus/console_libraries
|
||||
- --web.console.templates=/usr/share/prometheus/consoles
|
||||
- --web.enable-admin-api
|
||||
volumes:
|
||||
- prometheus:/prometheus
|
||||
- ./files/prometheus:/etc/prometheus
|
||||
ports:
|
||||
- 9090:9090
|
||||
grafana:
|
||||
image: grafana/grafana:6.5.0
|
||||
container_name: grafana
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 3000:3000
|
||||
environment:
|
||||
HOSTNAME: grafana
|
||||
GF_SECURITY_ADMIN_USER: admin
|
||||
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD}
|
||||
GF_SERVER_ROOT_URL: ${GRAFANA_URL}
|
||||
GF_ANALYTICS_REPORTING_ENABLED: "false"
|
||||
GF_ANALYTICS_CHECK_FOR_UPDATES: "false"
|
||||
GF_USERS_ALLOW_SIGN_UP: "false"
|
||||
GF_USERS_ALLOW_ORG_CREATE: "false"
|
||||
GF_LOG_LEVEL: "debug"
|
||||
volumes:
|
||||
- ./files/grafana/dashboards.yaml:/etc/grafana/provisioning/dashboards/default.yaml:ro
|
||||
- ./files/grafana/prometheus.yaml:/etc/grafana/provisioning/datasources/prometheus.yaml:ro
|
||||
- ./files/grafana/daemon_metrics.json:/var/lib/grafana/dashboards/daemon_metrics.json:ro
|
||||
- grafana:/var/lib/grafana
|
||||
exporter:
|
||||
container_name: exporter
|
||||
build:
|
||||
context: dockerfiles
|
||||
dockerfile: monerod_exporter
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
DAEMON_HOST: http://monerod:18083
|
||||
PORT: 8080
|
||||
ports:
|
||||
- 8080:8080
|
||||
monerod:
|
||||
container_name: monerod
|
||||
build:
|
||||
context: dockerfiles
|
||||
dockerfile: monero_nocompile
|
||||
args:
|
||||
threads: ${THREADS:-1}
|
||||
volumes:
|
||||
- ${DATA_DIR:-./data}:/data
|
||||
ports:
|
||||
- 18080:18080 # p2p
|
||||
- 18081:18081 # restricted rpc
|
||||
- 18082:18082 # zmq
|
||||
- 18083:18083 # unrestricted rpc
|
||||
command:
|
||||
monerod --data-dir=/data --p2p-bind-ip=0.0.0.0 --p2p-bind-port=18080 --rpc-restricted-bind-port=18081 --zmq-rpc-bind-ip=0.0.0.0 --zmq-rpc-bind-port=18082 --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18083 --non-interactive --confirm-external-bind --public-node --log-level=0
|
@ -0,0 +1,39 @@
|
||||
FROM ubuntu:19.10
|
||||
|
||||
ENV MONERO_HASH 2335716555ff0428da0f206a491d9c57b7ae2221d1cfbbb3bf43960d3a2a4dfe
|
||||
ENV MONERO_DL_URL https://github.com/monero-project/monero/releases/download/v0.17.0.1/monero-linux-x64-v0.17.0.1.tar.bz2
|
||||
ENV MONERO_DL_FILE monero.tar.bz2
|
||||
ENV MONERO_SUMS_FILE sha256sums
|
||||
|
||||
WORKDIR /opt/monero
|
||||
|
||||
# Update system and install dependencies
|
||||
# Download Monero binaries from Github
|
||||
# Confirm hashes match
|
||||
# Install daemon binary
|
||||
# Clean up
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get upgrade -y \
|
||||
&& apt-get install -y tar wget \
|
||||
&& wget -qO ${MONERO_DL_FILE} ${MONERO_DL_URL} \
|
||||
&& echo "${MONERO_HASH} ${MONERO_DL_FILE}" > ${MONERO_SUMS_FILE} \
|
||||
&& sha256sum -c ${MONERO_SUMS_FILE}; \
|
||||
if [ "$?" -eq 0 ]; \
|
||||
then \
|
||||
echo -e "[+] Hashes match - proceeding with container build"; \
|
||||
else \
|
||||
echo -e "[!] Hashes do not match - exiting"; \
|
||||
exit 5; \
|
||||
fi \
|
||||
&& mkdir ./tmp \
|
||||
&& tar xjf ${MONERO_DL_FILE} -C ./tmp --strip 1 \
|
||||
&& mv ./tmp/* /usr/local/bin/ \
|
||||
&& rm -rf ./tmp ${MONERO_SUMS_FILE} ${MONERO_DL_FILE}
|
||||
|
||||
WORKDIR /data
|
||||
|
||||
EXPOSE 18080
|
||||
EXPOSE 18081
|
||||
EXPOSE 18082
|
||||
EXPOSE 18083
|
Loading…
Reference in New Issue