understanding commited on
Commit
2df54ff
·
verified ·
1 Parent(s): 688dddc

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +19 -34
Dockerfile CHANGED
@@ -4,45 +4,30 @@ FROM python:3.10-slim
4
  # Set the working directory in the container
5
  WORKDIR /app
6
 
7
- # Create the data directory for persistent template storage
8
- # This ensures the directory exists when the application starts.
9
- # Permissions are usually fine by default for the user running the app.
10
- RUN mkdir -p ./data/app_template_storage && \
11
-
12
- chmod -R 777 ./data/app_template_storage
13
-
14
- # Copy the requirements file into the container at /app
 
 
 
 
 
 
 
 
15
  COPY requirements.txt .
16
 
17
- # Install any needed packages specified in requirements.txt
18
  # --no-cache-dir reduces image size
19
- # Ensure Hydrogram and any other dependencies are in requirements.txt
20
  RUN pip install --no-cache-dir -r requirements.txt
21
 
22
- # Copy the rest of the application code (e.g., main.py) into the container at /app
23
  COPY . .
24
 
25
- # Command to run the application
26
- # This will execute your main.py script when the container launches.
27
  CMD ["python", "main.py"]
28
-
29
- # --- Persistence Note for Docker (and similar platforms) ---
30
- # The `RUN mkdir -p /app/data` line creates the directory INSIDE the container image.
31
- # If the container is stopped and removed, and a new one is started from the image,
32
- # this directory will be "fresh" (empty, or as it was when the image was built).
33
- #
34
- # To make the template content in `/app/data` truly persistent across container
35
- # restarts and deployments (so you don't lose the template), you would use a Docker Volume.
36
- # When running the container, you would mount a volume to `/app/data`:
37
- #
38
- # docker run -d -v my_template_data:/app/data <your_image_name>
39
- #
40
- # - `my_template_data` is the name of the Docker volume on the host.
41
- # - `:/app/data` maps this volume to the `/app/data` directory inside the container.
42
- #
43
- # Hugging Face Spaces often handles some level of persistence for the main app directory,
44
- # so the `data/` subfolder might persist. However, if you need guaranteed persistence
45
- # that survives complete rebuilds or more complex scenarios, you'd look into the specific
46
- # persistence options offered by the platform (which might abstract Docker volumes).
47
- # For simple cases on HF Spaces, just creating the directory and writing to it usually works
48
- # for persistence across restarts of the same deployment.
 
4
  # Set the working directory in the container
5
  WORKDIR /app
6
 
7
+ # Define an argument for the data directory name (for flexibility)
8
+ ARG APP_TEMPLATE_DIR_NAME=app_template_storage
9
+
10
+ # Create the specific data directory for templates AND set permissions.
11
+ # The './' ensures it's relative to WORKDIR (/app).
12
+ # This command runs as root during the image build.
13
+ RUN mkdir -p ./${APP_TEMPLATE_DIR_NAME} && \
14
+ chmod -R 777 ./${APP_TEMPLATE_DIR_NAME}
15
+ # IMPORTANT on chmod 777:
16
+ # This gives read, write, and execute permissions to everyone (owner, group, others).
17
+ # While it solves permission issues, it's very open.
18
+ # For production, you'd ideally find the UID your app runs as on Hugging Face
19
+ # and chown the directory to that user, or use more restrictive permissions (e.g., 755, 775).
20
+ # However, for troubleshooting and typical Hugging Face Space usage, 777 is a common fix.
21
+
22
+ # Copy the requirements file into the container
23
  COPY requirements.txt .
24
 
25
+ # Install Python dependencies
26
  # --no-cache-dir reduces image size
 
27
  RUN pip install --no-cache-dir -r requirements.txt
28
 
29
+ # Copy the rest of your application code (e.g., main.py) into the container
30
  COPY . .
31
 
32
+ # Command to run your Python application
 
33
  CMD ["python", "main.py"]