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