Imgpost / Dockerfile
understanding's picture
Update Dockerfile
2df54ff verified
# Use an official Python runtime as a parent image
FROM python:3.10-slim
# Set the working directory in the container
WORKDIR /app
# Define an argument for the data directory name (for flexibility)
ARG APP_TEMPLATE_DIR_NAME=app_template_storage
# Create the specific data directory for templates AND set permissions.
# The './' ensures it's relative to WORKDIR (/app).
# This command runs as root during the image build.
RUN mkdir -p ./${APP_TEMPLATE_DIR_NAME} && \
chmod -R 777 ./${APP_TEMPLATE_DIR_NAME}
# IMPORTANT on chmod 777:
# This gives read, write, and execute permissions to everyone (owner, group, others).
# While it solves permission issues, it's very open.
# For production, you'd ideally find the UID your app runs as on Hugging Face
# and chown the directory to that user, or use more restrictive permissions (e.g., 755, 775).
# However, for troubleshooting and typical Hugging Face Space usage, 777 is a common fix.
# Copy the requirements file into the container
COPY requirements.txt .
# Install Python dependencies
# --no-cache-dir reduces image size
RUN pip install --no-cache-dir -r requirements.txt
# Copy the rest of your application code (e.g., main.py) into the container
COPY . .
# Command to run your Python application
CMD ["python", "main.py"]