readeck / Dockerfile
wwforonce's picture
fix add dataset
02246ee
FROM python:3.11-slim
# Install dependencies
RUN apt update && apt install -y \
gcc \
curl \
sudo \
git-lfs \
openssl \
jq \
&& rm -rf /var/lib/apt/lists/*
# Install Python packages
RUN pip install --no-cache-dir \
huggingface_hub \
datasets
# Add health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
CMD curl -f http://localhost:7860/ || exit 1
COPY config.toml /app/readeck/config.toml
# --- ADD THIS LINE TO FIX PERMISSION ISSUES ---
# This command changes the file permissions to be readable and writable by everyone.
# This is a common fix for permission denied errors, especially if the application
# needs to write to the config file or if the user running the app is unknown.
# If config.toml is only read by the application, 'chmod 644' might be sufficient and more secure.
# However, for debugging and ensuring it runs, '666' is a good start.
RUN chmod 666 /app/readeck/config.toml
# --- NEW ADDITION FOR DATA DIRECTORY PERMISSIONS ---
# Create the 'data' directory and set permissions to allow writing by any user.
# This ensures the application, even if running as a non-root user,
# can create and write files (like db.sqlite3) within this directory.
#RUN mkdir -p /app/readeck/data && chmod 777 /app/readeck/data
# Copy sync scripts
COPY sync_storage.py /app/sync_storage.py
COPY start_with_sync.sh /start.sh
# Make scripts executable
RUN chmod +x /app/sync_storage.py /start.sh
# Start with sync
# Set working directory
WORKDIR /tmp
RUN readeck_url=$(curl -X 'GET' 'https://codeberg.org/api/v1/repos/readeck/readeck/releases/latest' -H 'accept: application/json' | jq -r '.assets[] | .browser_download_url | select(. | endswith("linux-amd64"))') && \
echo download readeck from $readeck_url && \
curl -q $readeck_url -o /bin/readeck &&\
chmod a+x /bin/readeck
ENTRYPOINT ["/start.sh"]
# CMD ["/bin/readeck","serve", "-config", "/app/readeck/config.toml"]