From 5538470a5df143e78024214d13949694ffab7be4 Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Fri, 1 Dec 2023 22:47:58 +0100 Subject: [PATCH] Add sample on how to run a cron task in a docker container --- Dockerfile | 12 ++++++++++++ crontab-file | 1 + docker-compose.yml | 8 ++++++++ output/out.txt | 19 +++++++++++++++++++ task.sh | 1 + 5 files changed, 41 insertions(+) create mode 100644 Dockerfile create mode 100644 crontab-file create mode 100644 docker-compose.yml create mode 100644 output/out.txt create mode 100755 task.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e7ac0c2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +# Dockerfile to create image with cron services +FROM ubuntu:latest + +# Install Cron +RUN apt-get update \ + && apt-get -y install cron \ + && rm -rf /var/lib/apt/lists/* + +RUN useradd test + +# Run the command on container startup +CMD crontab -u test /home/test/cron/crontab-file && cron -f diff --git a/crontab-file b/crontab-file new file mode 100644 index 0000000..09a22a1 --- /dev/null +++ b/crontab-file @@ -0,0 +1 @@ +* * * * * bash /test/cron/task.sh diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e64da29 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3' +services: + cron: + build: . + volumes: + - ./output:/output + - ./:/home/test/cron + \ No newline at end of file diff --git a/output/out.txt b/output/out.txt new file mode 100644 index 0000000..ffc3c4b --- /dev/null +++ b/output/out.txt @@ -0,0 +1,19 @@ +Hello World at Thu Nov 30 21:45:01 UTC 2023 +Hello World at Thu Nov 30 21:46:01 UTC 2023 +Hello World at Thu Nov 30 21:47:01 UTC 2023 +Hello World at Thu Nov 30 21:48:01 UTC 2023 +Hello World at Thu Nov 30 21:52:01 UTC 2023 +Hello World at Thu Nov 30 21:53:01 UTC 2023 +Hello World at Thu Nov 30 21:54:01 UTC 2023 +Hello World at Thu Nov 30 21:55:01 UTC 2023 +Hello World at Thu Nov 30 21:56:01 UTC 2023 +Hello World at Thu Nov 30 21:57:01 UTC 2023 +Hello World at Thu Nov 30 22:02:01 UTC 2023 +Hello World at Thu Nov 30 22:03:01 UTC 2023 +Hello World at Thu Nov 30 22:04:01 UTC 2023 +Hello World at Thu Nov 30 22:05:01 UTC 2023 +Hello World at Thu Nov 30 22:06:01 UTC 2023 +Hello World at Thu Nov 30 22:07:01 UTC 2023 +Hello World at at at at at Thu Nov 30 22:08:01 UTC 2023 +Hello World at at at at at Thu Nov 30 22:09:01 UTC 2023: /root +Hello World at at at at at Thu Nov 30 22:10:01 UTC 2023: /root diff --git a/task.sh b/task.sh new file mode 100755 index 0000000..c3b8682 --- /dev/null +++ b/task.sh @@ -0,0 +1 @@ +echo "Hello World at at at at at $(date): $(pwd)" >> /output/out.txt \ No newline at end of file