Ver Fonte

Dockerfire

mengqiankang há 2 meses atrás
pai
commit
b2e70ecc14
4 ficheiros alterados com 40 adições e 26 exclusões
  1. 38 0
      Dockerfire
  2. 1 0
      alien_snowflake/README.md
  3. 1 0
      alien_snowflake/__init__.py
  4. 0 26
      alien_store/Dockerfire

+ 38 - 0
Dockerfire

@@ -0,0 +1,38 @@
+# 1. 基础镜像:Python 3.12 Slim 版本 (体积小,构建快)
+FROM python:3.12-slim
+
+# 2. 设置工作目录为 /app
+WORKDIR /app
+
+# 3. 设置环境变量
+# POETRY_VIRTUALENVS_CREATE=false: 直接安装到系统环境,不创建虚拟环境 (容器内不需要隔离)
+# PYTHONUNBUFFERED=1: 日志实时输出,方便 Docker logs 查看
+# PYTHONDONTWRITEBYTECODE=1: 不生成 .pyc 文件,减小体积
+ENV POETRY_VIRTUALENVS_CREATE=false \
+    PYTHONUNBUFFERED=1 \
+    PYTHONDONTWRITEBYTECODE=1
+
+# 4. 安装 Poetry
+RUN pip install --no-cache-dir poetry
+
+# 5. 复制依赖文件 (利用 Docker 缓存层)
+# 先复制 pyproject.toml 和 poetry.lock,如果依赖没变,这层构建会直接使用缓存
+COPY pyproject.toml poetry.lock ./
+
+# 6. 安装依赖
+# --no-root: 不安装当前项目本身 (因为我们是复制源码运行)
+# --no-interaction: 非交互模式,避免脚本卡住
+RUN poetry install --no-root --no-interaction --no-ansi
+
+# 7. 复制所有源代码
+# 将当前目录下的所有文件(alien_store, alien_gateway, common 等)都复制进容器
+COPY . .
+
+# 8. 暴露端口
+# 对应流水线中 -p 33333:33333 的设置
+EXPOSE 33333
+
+# 9. 启动命令
+# 使用 uvicorn 启动 alien_store 服务
+# alien_store.main:app -> 指向 alien_store/main.py 中的 app 对象
+CMD ["uvicorn", "alien_store.main:app", "--host", "0.0.0.0", "--port", "33333"]

+ 1 - 0
alien_snowflake/README.md

@@ -54,3 +54,4 @@ pk = gen.next_id()
 
 
 
+

+ 1 - 0
alien_snowflake/__init__.py

@@ -14,3 +14,4 @@ __all__ = [
 
 
 
+

+ 0 - 26
alien_store/Dockerfire

@@ -1,26 +0,0 @@
-FROM python:3.12-slim
-WORKDIR /app
-
-# 装基础依赖避免构建中断
-RUN apt-get update && apt-get install -y --no-install-recommends curl && \
-    rm -rf /var/lib/apt/lists/*
-
-# 安装 Poetry(固定版本以避免变动)
-ENV POETRY_VERSION=1.8.3
-RUN pip install --no-cache-dir "poetry==${POETRY_VERSION}"
-
-# 先复制依赖声明,利用缓存
-COPY pyproject.toml poetry.lock /app/
-
-# 禁用虚拟环境,直接装到系统环境
-RUN poetry config virtualenvs.create false && \
-    poetry install --no-root --no-interaction --no-ansi
-
-# 复制全部代码(满足“导入所有代码”)
-COPY . /app
-
-ENV PYTHONUNBUFFERED=1
-EXPOSE 33333
-
-# 按实际入口调整;示例为 FastAPI + uvicorn
-CMD ["uvicorn", "alien_store.api.router:app", "--host", "0.0.0.0", "--port", "8000"]