Fix Dockerfile for Cloudron: run as root (base image default), override ENTRYPOINT, fix .dockerignore

This commit is contained in:
inference-bot committed 2026-09-04 10:29:15 -06:00
1 parent b9b4620e52
commit 41068a6264
2 files changed
+10 -16

No files matched your search

-1
View File
@@ -1,5 +1,4 @@
node_modules
.git
*.md
Dockerfile
.dockerignore
+10 -15
View File
@@ -1,25 +1,20 @@
FROM ghcr.io/berriai/litellm:main-v1.74.0-stable
# Cloudron runs apps as the 'cloudron' user (uid 1000) by default.
# LiteLLM's official image runs as root; we switch to cloudron for security.
# However, LiteLLM needs to write to /app/data for its database/config.
# LiteLLM's official image runs as root. Cloudron's sandboxing (read-only
# rootfs, AppArmor, dropped capabilities) still applies to root inside the
# container, so we keep root to match the base image and avoid /app/data
# volume-ownership issues.
USER root
# Install supervisor to manage processes (LiteLLM + optional cron)
RUN pip install --no-cache-dir supervisor
# Create the data directory and set ownership
RUN mkdir -p /app/data && chown -R cloudron:cloudron /app/data
# Create the data directory (Cloudron mounts the localstorage volume here)
RUN mkdir -p /app/data
# Create a startup script that configures LiteLLM with Cloudron addons
COPY start.sh /app/code/start.sh
RUN chmod +x /app/code/start.sh && chown cloudron:cloudron /app/code/start.sh
RUN chmod +x /app/code/start.sh
# Default config — will be overridden by Cloudron env vars at runtime
COPY config.yaml /app/data/config.yaml
RUN chown cloudron:cloudron /app/data/config.yaml
USER cloudron
CMD ["/app/code/start.sh"]
# Override the base image's ENTRYPOINT (which is `litellm`) so our
# startup script runs instead of being passed as an argument to litellm.
ENTRYPOINT ["/app/code/start.sh"]