From 16b3dff93e5d1096174749e1b809728f585d95fb Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Wed, 19 May 2021 13:48:31 +0200 Subject: refactored service structure and added do.sh for automation --- service/container/.gitignore | 1 + service/container/Dockerfile | 24 ++++++++++++++++++++++++ service/container/cleaner.sh | 19 +++++++++++++++++++ service/container/data/lastclean | 0 service/container/docker-compose.yml | 8 ++++++++ service/container/entrypoint.sh | 14 ++++++++++++++ 6 files changed, 66 insertions(+) create mode 100644 service/container/.gitignore create mode 100644 service/container/Dockerfile create mode 100644 service/container/cleaner.sh create mode 100644 service/container/data/lastclean create mode 100644 service/container/docker-compose.yml create mode 100755 service/container/entrypoint.sh (limited to 'service/container') 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 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 -- cgit v1.2.3-71-gd317