Spaces:
Sleeping
Sleeping
Commit ·
be055a2
1
Parent(s): cdc12dc
Update Dockerfile: remove db_models directory creation and initialization from Dockerfile, streamlining the build process and improving organization by relying on separate model files.
Browse files- Dockerfile +0 -7
Dockerfile
CHANGED
|
@@ -23,7 +23,6 @@ RUN useradd -m -u 1000 app
|
|
| 23 |
RUN mkdir -p /app/storage/audio \
|
| 24 |
/app/storage/text \
|
| 25 |
/app/storage/temp \
|
| 26 |
-
/app/app/db_models \
|
| 27 |
&& chown -R app:app /app
|
| 28 |
|
| 29 |
# Copy requirements first to leverage Docker cache
|
|
@@ -33,12 +32,6 @@ RUN pip install --no-cache-dir -r requirements.txt
|
|
| 33 |
# Copy the entire application code
|
| 34 |
COPY --chown=app:app . .
|
| 35 |
|
| 36 |
-
# Create and populate the db_models directory
|
| 37 |
-
RUN mkdir -p /app/app/db_models && \
|
| 38 |
-
echo '"""Database configuration and session management."""\nimport os\nfrom datetime import datetime\nfrom sqlalchemy import create_engine, Column, Integer, String, DateTime, Float, Text, JSON, Boolean\nfrom sqlalchemy.orm import sessionmaker\nfrom sqlalchemy.ext.declarative import declarative_base\n\n# Get database URL from environment or use SQLite as default\nDATABASE_URL = os.getenv("DATABASE_URL", "sqlite:///app/storage/audiobooks.db")\n\n# Create engine with connection pool settings\nengine = create_engine(\n DATABASE_URL,\n pool_size=5,\n max_overflow=10,\n pool_timeout=30,\n pool_recycle=1800,\n echo=False\n)\n\n# Create session factory\nSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)\n\ndef get_db():\n """Get database session."""\n db = SessionLocal()\n try:\n yield db\n finally:\n db.close()\n\n# Create base class for declarative models\nBase = declarative_base()\n\ndef init_db():\n """Initialize database tables."""\n Base.metadata.create_all(bind=engine)\n\n__all__ = [\n "Base",\n "engine",\n "SessionLocal",\n "get_db",\n "init_db"\n]' > /app/app/db_models/__init__.py && \
|
| 39 |
-
echo '"""Database models."""\nfrom datetime import datetime\nfrom sqlalchemy import Column, Integer, String, DateTime, Float, Text, JSON, Boolean\nfrom . import Base\n\nclass Audiobook(Base):\n """Model for storing audiobook information."""\n __tablename__ = "audiobooks"\n\n id = Column(String(36), primary_key=True)\n title = Column(String(255), nullable=False)\n author = Column(String(255))\n voice_id = Column(String(50), nullable=False)\n status = Column(String(20), nullable=False, default="pending")\n created_at = Column(DateTime, nullable=False, default=datetime.utcnow)\n updated_at = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)\n duration = Column(Float)\n file_path = Column(String(255))\n error = Column(Text)\n meta_data = Column(JSON)\n\nclass Voice(Base):\n """Model for storing voice information."""\n __tablename__ = "voices"\n\n id = Column(String(36), primary_key=True)\n name = Column(String(255), nullable=False)\n type = Column(String(50), nullable=False)\n speaker_id = Column(Integer)\n created_at = Column(DateTime, nullable=False, default=datetime.utcnow)\n is_active = Column(Boolean, default=True)\n meta_data = Column(JSON)\n\nclass AudioCache(Base):\n """Model for caching generated audio."""\n __tablename__ = "audio_cache"\n\n id = Column(String(36), primary_key=True)\n hash = Column(String(64), nullable=False, unique=True)\n format = Column(String(10), nullable=False)\n created_at = Column(DateTime, nullable=False, default=datetime.utcnow)\n file_path = Column(String(255), nullable=False)\n meta_data = Column(JSON)' > /app/app/db_models/database.py && \
|
| 40 |
-
chown -R app:app /app/app/db_models
|
| 41 |
-
|
| 42 |
# Make scripts executable
|
| 43 |
RUN chmod +x /app/scripts/*.sh
|
| 44 |
|
|
|
|
| 23 |
RUN mkdir -p /app/storage/audio \
|
| 24 |
/app/storage/text \
|
| 25 |
/app/storage/temp \
|
|
|
|
| 26 |
&& chown -R app:app /app
|
| 27 |
|
| 28 |
# Copy requirements first to leverage Docker cache
|
|
|
|
| 32 |
# Copy the entire application code
|
| 33 |
COPY --chown=app:app . .
|
| 34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
# Make scripts executable
|
| 36 |
RUN chmod +x /app/scripts/*.sh
|
| 37 |
|