FROM node:20-bookworm-slim WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ python3 make g++ gosu \ && rm -rf /var/lib/apt/lists/* COPY package.json ./ RUN npm install --omit=dev COPY src ./src COPY public ./public # Prepare mount points with UID 1000 ownership so named volumes inherit it. RUN mkdir -p /data/db /data/uploads /data/logo /webdav-config \ && chown -R 1000:1000 /data /webdav-config /app ENV NODE_ENV=production \ PORT=3000 \ UPLOAD_ROOT=/data/uploads \ DB_PATH=/data/db/app.db \ WEBDAV_CONFIG_DIR=/webdav-config COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh EXPOSE 3000 ENTRYPOINT ["/entrypoint.sh"] CMD ["node", "src/server.js"]