Do not be root in docker and fix model caching

Change-Id: I3ad60ef259b35579902d68a0f949184d87d0067b
diff --git a/Dockerfile.with-models b/Dockerfile.with-models
index 39c7bd4..f6f64c5 100644
--- a/Dockerfile.with-models
+++ b/Dockerfile.with-models
@@ -66,6 +66,7 @@
 COPY systems /app/systems
 COPY my_utils /app/my_utils
 COPY docker-entrypoint.sh /docker-entrypoint.sh
+COPY download_with_progress.py /app/download_with_progress.py
 
 # Set environment variables
 ENV VIRTUAL_ENV=/app/venv
@@ -89,8 +90,18 @@
 ENV TEMP="/app/tmp"
 ENV TMP="/app/tmp"
 
-# Make entrypoint executable
-RUN chmod +x /docker-entrypoint.sh
+# Add non-root user
+RUN groupadd -r appuser && useradd -r -g appuser appuser
+
+# Make entrypoint executable and set permissions
+RUN chmod +x /docker-entrypoint.sh && \
+    chmod +x /app/download_with_progress.py
+
+# Change ownership of app directories to appuser
+RUN chown -R appuser:appuser /app /local /docker-entrypoint.sh
+
+# Switch to non-root user
+USER appuser
 
 # Define the entry point
 ENTRYPOINT ["/docker-entrypoint.sh"]