jameszokah commited on
Commit
6712559
·
1 Parent(s): 63f90ce

Enhance Docker setup: update docker-entrypoint.sh to set PYTHONPATH, modify Dockerfile to create a proper package structure and adjust permissions for storage and migrations directories; update migrations/env.py to include application root in Python path.

Browse files
Files changed (3) hide show
  1. Dockerfile +9 -3
  2. docker-entrypoint.sh +4 -1
  3. migrations/env.py +4 -0
Dockerfile CHANGED
@@ -41,7 +41,7 @@ RUN pip install --no-cache-dir \
41
  psycopg2-binary==2.9.9 \
42
  alembic==1.13.1
43
 
44
- # Create necessary directories
45
  RUN mkdir -p /app/storage/audio \
46
  /app/storage/text \
47
  /app/models \
@@ -53,7 +53,12 @@ RUN mkdir -p /app/storage/audio \
53
  /app/audio_cache \
54
  /app/static \
55
  /app/logs \
56
- /app/migrations/versions
 
 
 
 
 
57
 
58
  # Copy the model from the model-downloader stage
59
  COPY --from=model-downloader /model-downloader/models /app/models
@@ -77,7 +82,8 @@ ENV PYTHONPATH=/app \
77
  RUN chown -R nobody:nogroup /app && \
78
  chmod -R 755 /app && \
79
  # Make migrations directory writable
80
- chmod -R 777 /app/migrations
 
81
 
82
  # Switch to non-root user
83
  USER nobody
 
41
  psycopg2-binary==2.9.9 \
42
  alembic==1.13.1
43
 
44
+ # Create necessary directories with proper package structure
45
  RUN mkdir -p /app/storage/audio \
46
  /app/storage/text \
47
  /app/models \
 
53
  /app/audio_cache \
54
  /app/static \
55
  /app/logs \
56
+ /app/migrations/versions \
57
+ /app/app/models
58
+
59
+ # Create Python package structure
60
+ RUN touch /app/app/__init__.py \
61
+ /app/app/models/__init__.py
62
 
63
  # Copy the model from the model-downloader stage
64
  COPY --from=model-downloader /model-downloader/models /app/models
 
82
  RUN chown -R nobody:nogroup /app && \
83
  chmod -R 755 /app && \
84
  # Make migrations directory writable
85
+ chmod -R 777 /app/migrations && \
86
+ chmod -R 777 /app/storage
87
 
88
  # Switch to non-root user
89
  USER nobody
docker-entrypoint.sh CHANGED
@@ -1,6 +1,9 @@
1
  #!/bin/sh
2
  set -e
3
 
 
 
 
4
  # Wait for database to be ready (if using PostgreSQL)
5
  if [ "$DATABASE_URL" != "${DATABASE_URL#postgresql://}" ]; then
6
  echo "Waiting for PostgreSQL to be ready..."
@@ -12,7 +15,7 @@ fi
12
 
13
  # Run database migrations
14
  echo "Running database migrations..."
15
- alembic upgrade head
16
 
17
  # Start the application
18
  echo "Starting the application..."
 
1
  #!/bin/sh
2
  set -e
3
 
4
+ # Ensure proper Python path
5
+ export PYTHONPATH=/app:${PYTHONPATH}
6
+
7
  # Wait for database to be ready (if using PostgreSQL)
8
  if [ "$DATABASE_URL" != "${DATABASE_URL#postgresql://}" ]; then
9
  echo "Waiting for PostgreSQL to be ready..."
 
15
 
16
  # Run database migrations
17
  echo "Running database migrations..."
18
+ cd /app && alembic upgrade head
19
 
20
  # Start the application
21
  echo "Starting the application..."
migrations/env.py CHANGED
@@ -1,4 +1,5 @@
1
  import os
 
2
  from logging.config import fileConfig
3
 
4
  from sqlalchemy import engine_from_config
@@ -6,6 +7,9 @@ from sqlalchemy import pool
6
 
7
  from alembic import context
8
 
 
 
 
9
  # Import your models here
10
  from app.models.database import Base
11
 
 
1
  import os
2
+ import sys
3
  from logging.config import fileConfig
4
 
5
  from sqlalchemy import engine_from_config
 
7
 
8
  from alembic import context
9
 
10
+ # Add the application root directory to the Python path
11
+ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
12
+
13
  # Import your models here
14
  from app.models.database import Base
15