diff --git a/Dockerfile.cron.demo b/Dockerfile.cron.demo
new file mode 100644
index 0000000000000000000000000000000000000000..bbfaf646d2bea23d305e0e81c8bdc8fd803252cb
--- /dev/null
+++ b/Dockerfile.cron.demo
@@ -0,0 +1,11 @@
+FROM debian:bookworm-slim
+
+RUN apt-get update && apt-get install -y cron
+
+COPY demo_cronjob /etc/cron.d/cronjob
+
+RUN chmod 0644 /etc/cron.d/cronjob
+
+RUN touch /var/log/cron.log
+
+CMD cron && tail -f /var/log/cron.log
\ No newline at end of file
diff --git a/db.demo.sqlite3 b/db.demo.sqlite3
new file mode 100644
index 0000000000000000000000000000000000000000..c607a4670327bdbd44ef89004eee808c6f1d2877
Binary files /dev/null and b/db.demo.sqlite3 differ
diff --git a/demo_cronjob b/demo_cronjob
new file mode 100644
index 0000000000000000000000000000000000000000..dcfde9fc835c69f2d09243d9eb41ceba2f2b99dc
--- /dev/null
+++ b/demo_cronjob
@@ -0,0 +1 @@
+0 */3 * * * /usr/bin/cp /home/app/web/db.demo.sqlite3 /home/app/web/db.sqlite3 >> /var/log/cron.log 2>&1
diff --git a/docker-compose.demo.yml b/docker-compose.demo.yml
index 74fe8f9422c19a37e704563b968a3eaf25e30f67..163caa05102caf5f2e9aa789206b228236212347 100644
--- a/docker-compose.demo.yml
+++ b/docker-compose.demo.yml
@@ -27,7 +27,7 @@ services:
         soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536
         hard: 65536
     volumes:
-      - demo_opensearch:/usr/share/opensearch/data # Creates volume called opensearch-data1 and mounts it to the container
+      - demo_opensearch:/usr/share/opensearch/data
     expose:
       - 9200
       - 9600
@@ -47,6 +47,14 @@ services:
     networks:
       - librarydemo
 
+  cron:
+    build:
+      context: .
+      dockerfile: Dockerfile.cron.demo
+    volumes:
+      - ./db.sqlite3:/home/app/web/db.sqlite3
+      - ./db.demo.sqlite3:/home/app/web/db.demo.sqlite3
+
 volumes:
   demo_static:
   demo_media: