aboutsummaryrefslogtreecommitdiffstats
path: root/service/container
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2021-05-19 13:48:31 +0200
committerLouis Burda <quent.burda@gmail.com>2021-05-19 13:48:31 +0200
commit16b3dff93e5d1096174749e1b809728f585d95fb (patch)
treebf0882e08c1834774ff1297f81752305ac7aaec3 /service/container
parent64e9b2ad130c0cf28797c3530683fc1cc6b0e9d3 (diff)
downloadenowars5-service-stldoctor-16b3dff93e5d1096174749e1b809728f585d95fb.tar.gz
enowars5-service-stldoctor-16b3dff93e5d1096174749e1b809728f585d95fb.zip
refactored service structure and added do.sh for automation
Diffstat (limited to 'service/container')
-rw-r--r--service/container/.gitignore1
-rw-r--r--service/container/Dockerfile24
-rw-r--r--service/container/cleaner.sh19
-rw-r--r--service/container/data/lastclean0
-rw-r--r--service/container/docker-compose.yml8
-rwxr-xr-xservice/container/entrypoint.sh14
6 files changed, 66 insertions, 0 deletions
diff --git a/service/container/.gitignore b/service/container/.gitignore
new file mode 100644
index 0000000..8eba6c8
--- /dev/null
+++ b/service/container/.gitignore
@@ -0,0 +1 @@
+src/
diff --git a/service/container/Dockerfile b/service/container/Dockerfile
new file mode 100644
index 0000000..e987831
--- /dev/null
+++ b/service/container/Dockerfile
@@ -0,0 +1,24 @@
+FROM ubuntu:18.04
+
+RUN apt update && apt install -y --no-install-recommends socat build-essential
+
+RUN addgroup --system service
+RUN adduser --system --ingroup service --uid 1000 service
+
+RUN mkdir /data
+
+COPY entrypoint.sh /
+RUN chmod +x /entrypoint.sh
+
+COPY cleaner.sh /
+RUN chmod +x /cleaner.sh
+
+COPY src/ /service/
+
+WORKDIR /service/
+RUN make clean && make
+
+EXPOSE 9000
+ENV RESULTDIR=/data/scans
+
+ENTRYPOINT ["/entrypoint.sh"]
diff --git a/service/container/cleaner.sh b/service/container/cleaner.sh
new file mode 100644
index 0000000..2882608
--- /dev/null
+++ b/service/container/cleaner.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+timeref="/data/lastclean"
+
+if [ -z "$RESULTDIR" ]; then
+ echo "RESULTDIR is undefined! skipping cleanup.."
+ exit 1
+fi
+
+if [ -f "$timeref" ]; then
+ files="$(find "$RESULTDIR" -mindepth 1 \! -newer "$timeref")"
+ echo "$files" | while read path; do
+ rm -rf "$path"
+ done
+ echo "[ $(date +%T) ] Removed $(echo -n "$files" | wc -l) old files!"
+fi
+
+touch "$timeref"
+
diff --git a/service/container/data/lastclean b/service/container/data/lastclean
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/service/container/data/lastclean
diff --git a/service/container/docker-compose.yml b/service/container/docker-compose.yml
new file mode 100644
index 0000000..56ecc9f
--- /dev/null
+++ b/service/container/docker-compose.yml
@@ -0,0 +1,8 @@
+version: '3'
+services:
+ printdoc:
+ build: .
+ volumes:
+ - ./data/:/data:rw
+ ports:
+ - "9000:9000"
diff --git a/service/container/entrypoint.sh b/service/container/entrypoint.sh
new file mode 100755
index 0000000..956c747
--- /dev/null
+++ b/service/container/entrypoint.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+chown -R service:service "/data/"
+
+mkdir -p "$RESULTDIR"
+
+while [ 1 ]; do
+ /cleaner.sh
+ sleep 180
+done &
+
+servicecmd='socat -T30 -s TCP-LISTEN:9000,reuseaddr,fork EXEC:"/service/stldoctor",raw,pty,echo=0,stderr'
+
+su -s /bin/sh -c "$servicecmd" service