luojunhui 1 day ago
parent
commit
7aa217a476
2 changed files with 56 additions and 0 deletions
  1. 21 0
      Dockerfile
  2. 35 0
      docker-compose.yaml

+ 21 - 0
Dockerfile

@@ -0,0 +1,21 @@
+FROM python:3.11-slim-bullseye
+
+WORKDIR /app
+
+ENV PYTHONDONTWRITEBYTECODE 1
+ENV PYTHONUNBUFFERED 1
+ENV PIP_DISABLE_PIP_VERSION_CHECK=on
+
+RUN apt-get update && \
+    apt-get install -y --no-install-recommends gcc libpq-dev && \
+    rm -rf /var/lib/apt/lists/*
+
+COPY requirements.txt .
+RUN pip install --no-cache-dir -r requirements.txt
+
+COPY . .
+
+EXPOSE 6060
+
+CMD ["hypercorn", "task_app:app", "--config", "app_config.toml"]
+

+ 35 - 0
docker-compose.yaml

@@ -0,0 +1,35 @@
+version: '3.8'
+
+services:
+  app:
+    build:
+      context: .
+      dockerfile: Dockerfile
+    container_name: task-server-app
+    ports:
+      - "6060:6060"
+    volumes:
+      - .:/app
+    environment:
+      - PYTHONUNBUFFERED=1
+    # 如果应用依赖其他服务(如MySQL)
+    # depends_on:
+    #   - db
+
+  # 如果需要数据库服务,取消注释以下配置
+  # db:
+  #   image: mysql:8.0
+  #   container_name: mysql-db
+  #   environment:
+  #     MYSQL_ROOT_PASSWORD: rootpassword
+  #     MYSQL_DATABASE: mydb
+  #     MYSQL_USER: user
+  #     MYSQL_PASSWORD: password
+  #   volumes:
+  #     - mysql-data:/var/lib/mysql
+  #   ports:
+  #     - "3306:3306"
+
+# 如果需要持久化数据库,取消注释
+# volumes:
+#   mysql-data: