ishworrsubedii commited on
Commit
17c0bc1
·
1 Parent(s): 77e7008

update: dockerfile ffmpeg issue

Browse files
Files changed (2) hide show
  1. Dockerfile +25 -20
  2. app.py +1 -0
Dockerfile CHANGED
@@ -1,18 +1,22 @@
1
  FROM python:3.9
2
 
3
- # Install system dependencies including ImageMagick
4
  RUN apt-get update && apt-get install -y \
 
 
 
5
  ffmpeg \
6
  imagemagick \
7
  && rm -rf /var/lib/apt/lists/*
8
 
9
- # Configure ImageMagick policy to allow PDF operations
10
- RUN sed -i 's/rights="none" pattern="@\*/rights="read|write" pattern="@\*/' /etc/ImageMagick-6/policy.xml
11
-
12
- # Create necessary directories
13
  WORKDIR /app
14
- RUN mkdir -p /app/resources/temp_video
15
- RUN chmod -R 777 /app/resources/temp_video
 
 
 
 
16
 
17
  # Copy and install requirements
18
  COPY requirements.txt .
@@ -21,27 +25,28 @@ RUN pip install -r requirements.txt
21
  # Copy application code
22
  COPY . .
23
 
24
- # Set permissions
25
- RUN chown -R nobody:nogroup /app
26
- RUN chmod -R 755 /app
27
- RUN chmod -R 777 /tmp
28
-
29
- # Update ImageMagick policy to allow operations
30
  RUN mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xml.bak || true
31
  RUN echo '<policymap> \
32
- <policy domain="resource" name="memory" value="256MiB"/> \
33
- <policy domain="resource" name="map" value="512MiB"/> \
34
  <policy domain="resource" name="width" value="16KP"/> \
35
  <policy domain="resource" name="height" value="16KP"/> \
36
- <policy domain="resource" name="area" value="128MB"/> \
37
- <policy domain="resource" name="disk" value="1GiB"/> \
38
  <policy domain="delegate" rights="none" pattern="URL" /> \
39
  <policy domain="delegate" rights="none" pattern="HTTPS" /> \
40
  <policy domain="delegate" rights="none" pattern="HTTP" /> \
41
- <policy domain="path" rights="none" pattern="@*" /> \
42
  <policy domain="path" rights="read|write" pattern="@*"/> \
43
  </policymap>' > /etc/ImageMagick-6/policy.xml
44
 
45
- # Run the application
46
- EXPOSE 8000
 
 
 
 
 
 
 
47
  CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
  FROM python:3.9
2
 
3
+ # Install system dependencies
4
  RUN apt-get update && apt-get install -y \
5
+ software-properties-common \
6
+ && add-apt-repository ppa:mc3man/trusty-media \
7
+ && apt-get update && apt-get install -y \
8
  ffmpeg \
9
  imagemagick \
10
  && rm -rf /var/lib/apt/lists/*
11
 
12
+ # Create directories with proper permissions
 
 
 
13
  WORKDIR /app
14
+ RUN mkdir -p /app/resources/{temp_video,audio,fonts,intro} \
15
+ && chmod -R 777 /app/resources
16
+
17
+ # Set up temp directory with proper permissions
18
+ RUN mkdir -p /tmp/moviepy \
19
+ && chmod -R 777 /tmp/moviepy
20
 
21
  # Copy and install requirements
22
  COPY requirements.txt .
 
25
  # Copy application code
26
  COPY . .
27
 
28
+ # Configure ImageMagick
 
 
 
 
 
29
  RUN mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xml.bak || true
30
  RUN echo '<policymap> \
31
+ <policy domain="resource" name="memory" value="512MiB"/> \
32
+ <policy domain="resource" name="map" value="1GiB"/> \
33
  <policy domain="resource" name="width" value="16KP"/> \
34
  <policy domain="resource" name="height" value="16KP"/> \
35
+ <policy domain="resource" name="area" value="256MB"/> \
36
+ <policy domain="resource" name="disk" value="2GiB"/> \
37
  <policy domain="delegate" rights="none" pattern="URL" /> \
38
  <policy domain="delegate" rights="none" pattern="HTTPS" /> \
39
  <policy domain="delegate" rights="none" pattern="HTTP" /> \
 
40
  <policy domain="path" rights="read|write" pattern="@*"/> \
41
  </policymap>' > /etc/ImageMagick-6/policy.xml
42
 
43
+ # Set proper permissions
44
+ RUN chown -R nobody:nogroup /app \
45
+ && chmod -R 755 /app \
46
+ && chmod -R 777 /tmp
47
+
48
+ # Use non-root user
49
+ USER nobody
50
+
51
+ EXPOSE 7860
52
  CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
app.py CHANGED
@@ -17,6 +17,7 @@ app = FastAPI()
17
  RESOURCES_DIR = "resources"
18
  os.makedirs(RESOURCES_DIR, exist_ok=True)
19
 
 
20
 
21
  def upload_to_supabase(video_path, bucket_name="JewelmirrorVideoGeneration"):
22
  try:
 
17
  RESOURCES_DIR = "resources"
18
  os.makedirs(RESOURCES_DIR, exist_ok=True)
19
 
20
+ os.environ['MOVIEPY_TEMP_DIR'] = '/tmp/moviepy'
21
 
22
  def upload_to_supabase(video_path, bucket_name="JewelmirrorVideoGeneration"):
23
  try: