From 4da47f55772c1a21df5c67867b8bdab651c73981 Mon Sep 17 00:00:00 2001 From: Stuart Stent Date: Sun, 23 Nov 2025 16:13:58 +0000 Subject: [PATCH] first commit --- README.md | 0 docker-compose.yml | 38 ++++++++++++++++++++++++++++++++++++ dockerfile | 15 +++++++++++++++ nomad-client.json | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 101 insertions(+) create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 dockerfile create mode 100644 nomad-client.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a51200c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,38 @@ +version: '3.8' + +services: + consul-client: + image: hashicorp/consul:latest + container_name: consul-client + network_mode: host + restart: always + entrypoint: /bin/sh + command: > + -c "ETH0_IP=$$(ip -4 addr show eth0 | grep 'inet ' | head -n1 | awk '{print $$2}' | cut -d/ -f1) && + consul agent + -data-dir=/consul/data + -retry-join=192.168.4.226 + -retry-join=192.168.4.227 + -retry-join=192.168.4.228 + -retry-join=192.168.4.36 + -encrypt=AhKqpWcJGUHgj7x4gJPPTpvw859gbn/RTJINNeUDA2Q= + -bind=$$ETH0_IP + -advertise=$$ETH0_IP" + + nomad-client: + build: + context: . + dockerfile: Dockerfile + container_name: nomad-client + network_mode: host + privileged: true + restart: unless-stopped + depends_on: + - consul-client + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./nomad-client.json:/etc/nomad/nomad.json:ro + - /opt/nomad:/opt/nomad + - /tmp:/tmp + command: agent -config=/etc/nomad/nomad.json + diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..66346a2 --- /dev/null +++ b/dockerfile @@ -0,0 +1,15 @@ +FROM arm32v7/debian:bullseye-slim + +ENV NOMAD_VERSION=1.8.2 + +RUN apt-get update && \ + apt-get install -y curl unzip ca-certificates iproute2 && \ + curl -o nomad.zip https://releases.hashicorp.com/nomad/${NOMAD_VERSION}/nomad_${NOMAD_VERSION}_linux_arm.zip && \ + unzip nomad.zip && \ + chmod +x nomad && \ + mv nomad /usr/local/bin/ && \ + rm nomad.zip && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +ENTRYPOINT ["/usr/local/bin/nomad"] diff --git a/nomad-client.json b/nomad-client.json new file mode 100644 index 0000000..774954a --- /dev/null +++ b/nomad-client.json @@ -0,0 +1,48 @@ +{ + "data_dir": "/opt/nomad/data", + "client": { + "enabled": true, + "node_pool": "backup", + "servers": [ + "192.168.4.36:4647", + "192.168.4.226:4647", + "192.168.4.227:4647", + "192.168.4.228:4647" + ], + "cpu_total_compute": 0, + "network_speed": 0, + "no_host_uuid": false, + "node_class": "", + "reserved": { + "cpu": 0, + "disk": 0, + "memory": 200 + }, + "gc_interval": "1m", + "gc_parallel_destroys": 2, + "gc_disk_usage_threshold": 80, + "gc_inode_usage_threshold": 70, + "max_kill_timeout": "30s", + "options": { + "docker.privileged.enabled": "true", + "docker.volumes.enabled": "true", + "docker.caps.whitelist": "SYS_ADMIN,NET_ADMIN,chown,dac_override,fsetid,fowner,mknod,net_raw,setgid,setuid,setfcap,setpcap,net_bind_service,sys_chroot,kill,audit_write,sys_module", + "driver.raw_exec.enable": "1" + } + }, + "plugin": { + "docker": { + "config": { + "allow_privileged": true, + "volumes": { + "enabled": true + } + } + } + }, + "telemetry": { + "prometheus_metrics": true, + "publish_allocation_metrics": true, + "publish_node_metrics": true + } +}