summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorytti <saku@ytti.fi>2016-01-19 18:17:20 +0200
committerytti <saku@ytti.fi>2016-01-19 18:17:20 +0200
commit93593578aabba6cbbc11b331ead3c4271b3569f6 (patch)
tree502d08204bc1c16896413d9d3d1746f3ce724723
parent7948a07b5b5916809ab02d18cd120b3afaf48bfd (diff)
parenteb3d86fe6debc286d74e0eed5a61d5a564b324c4 (diff)
Merge pull request #273 from ocadotechnology/wip-auto-reload-config
Add the option of automatically reloading the config
-rw-r--r--Dockerfile12
-rw-r--r--README.md5
-rwxr-xr-xextra/auto-reload-config.runit12
-rwxr-xr-xextra/oxidized.runit2
4 files changed, 27 insertions, 4 deletions
diff --git a/Dockerfile b/Dockerfile
index b2aecfb..0eeeb8d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,11 +1,15 @@
-FROM debian:latest
+FROM phusion/baseimage:0.9.18
MAINTAINER Samer Abdel-Hafez <sam@arahant.net>
-RUN apt-get update && \
- apt-get install -y ruby ruby-dev libsqlite3-dev libssl-dev pkg-config make cmake
+RUN add-apt-repository ppa:brightbox/ruby-ng && \
+ apt-get update && \
+ apt-get install -y ruby2.1 ruby2.1-dev libsqlite3-dev libssl-dev pkg-config make cmake
RUN gem install oxidized oxidized-web --no-ri --no-rdoc
RUN apt-get remove -y ruby-dev pkg-config make cmake
-RUN apt-get -y autoremove \ No newline at end of file
+RUN apt-get -y autoremove
+
+ADD extra/oxidized.runit /etc/service/oxidized/run
+ADD extra/auto-reload-config.runit /etc/service/auto-reload-config/run
diff --git a/README.md b/README.md
index e4c02e8..a6766ec 100644
--- a/README.md
+++ b/README.md
@@ -230,6 +230,11 @@ rvm use --default 2.1.2
root@bla:~#
```
+If you want to have the config automatically reloaded (e.g. when using a http source that changes)
+```
+ root@bla:~# docker run -v /etc/oxidized:/root/.config/oxidized -p 8888:8888/tcp -e CONFIG_RELOAD_INTERVAL=3600 -t oxidized/oxidized:latest oxidized
+```
+
## Cookbook
### Debugging
In case a model plugin doesn't work correctly (ios, procurve, etc.), you can enable live debugging of SSH/Telnet sessions. Just add a ```debug``` option, specifying a log file destination to the ```input``` section.
diff --git a/extra/auto-reload-config.runit b/extra/auto-reload-config.runit
new file mode 100755
index 0000000..5eaecc8
--- /dev/null
+++ b/extra/auto-reload-config.runit
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+if [ -z "$CONFIG_RELOAD_INTERVAL" ]; then
+ # Just stop and do nothing
+ read
+fi
+
+while true; do
+ sleep $CONFIG_RELOAD_INTERVAL
+ echo "Reloading config..."
+ curl -s http://localhost:8888/reload?format=json -O /dev/null
+done
diff --git a/extra/oxidized.runit b/extra/oxidized.runit
new file mode 100755
index 0000000..c4ce129
--- /dev/null
+++ b/extra/oxidized.runit
@@ -0,0 +1,2 @@
+#!/bin/bash
+exec setuser root oxidized