Procházet zdrojové kódy

Fix: README, Add: Dockerfile

iaun před 3 měsíci
rodič
revize
5d855a9f3c
3 změnil soubory, kde provedl 90 přidání a 0 odebrání
  1. 41 0
      .dockerignore
  2. 44 0
      Dockerfile
  3. 5 0
      README.md

+ 41 - 0
.dockerignore

@@ -0,0 +1,41 @@
+# Git
+.git
+.gitignore
+
+# Python
+__pycache__
+*.pyc
+*.pyo
+venv/
+.venv/
+*.egg-info/
+.pytest_cache/
+
+# Node
+node_modules/
+frontend/node_modules/
+
+# Build artifacts
+frontend/dist/
+*.log
+
+# IDE
+.idea/
+.vscode/
+*.swp
+
+# Environment
+.env
+.env.local
+backend/.env
+
+# Database
+*.db
+*.sqlite
+
+# Kiro specs
+.kiro/
+
+# OS
+.DS_Store
+Thumbs.db

+ 44 - 0
Dockerfile

@@ -0,0 +1,44 @@
+# Stage 1: Build frontend
+FROM node:18-alpine AS frontend-builder
+WORKDIR /app/frontend
+COPY frontend/package*.json ./
+RUN npm ci
+COPY frontend/ ./
+RUN npm run build
+
+# Stage 2: Build backend
+FROM python:3.11-slim AS backend
+
+WORKDIR /app
+
+# Set timezone to Asia/Shanghai
+ENV TZ=Asia/Shanghai
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+# Install system dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+    libpq-dev \
+    && rm -rf /var/lib/apt/lists/*
+
+# Install Python dependencies
+COPY backend/requirements.txt ./
+RUN pip install --no-cache-dir -r requirements.txt
+
+# Copy backend code
+COPY backend/ ./
+
+# Copy frontend build
+COPY --from=frontend-builder /app/frontend/dist ./static
+
+# Environment variables
+ENV FLASK_CONFIG=production
+ENV PYTHONUNBUFFERED=1
+
+# Expose port
+EXPOSE 5000
+
+# Run with gunicorn (production)
+CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "wsgi:app"]
+
+# Alternative: Flask dev server (not recommended for production)
+# CMD ["python", "run.py"]

+ 5 - 0
README.md

@@ -77,8 +77,13 @@ python init_db.py
 
 ```bash
 # 后端
+
+## 测试
 python run.py
 
+# 生产
+gunicorn -w 4 -b 0.0.0.0:5000 wsgi:app
+
 # 前端构建
 cd frontend
 npm run build