添加配置

This commit is contained in:
孙小云 2026-01-31 11:12:32 +08:00
parent 51939cfec2
commit 9246d62cfa
3 changed files with 91 additions and 0 deletions

24
Dockerfile.base Normal file
View File

@ -0,0 +1,24 @@
# TH Agenter 基础镜像 - 包含所有依赖
# 使用方法:
# 1. 构建基础镜像docker build -f Dockerfile.base -t registry.t-aaron.com/hyf-backend-base:latest .
# 2. 推送到仓库docker push registry.t-aaron.com/hyf-backend-base:latest
# 3. 之后使用 Dockerfile.new 进行快速部署
FROM registry.t-aaron.com/python:3.11-slim
WORKDIR /app
# 配置 apt 使用更稳定的镜像源并安装系统依赖
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources || \
sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list || true \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
gcc \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
# 复制并处理依赖文件(排除 Windows 专用包和需要编译的包)
COPY requirements.txt .
RUN grep -v -E '^(win32_setctime|psycopg2==)' requirements.txt > /tmp/requirements.txt \
&& pip install --no-cache-dir -r /tmp/requirements.txt \
&& rm /tmp/requirements.txt requirements.txt

18
Dockerfile.new Normal file
View File

@ -0,0 +1,18 @@
# TH Agenter 后端 Docker 镜像 - 精简版
# 前提:需要先构建并推送基础镜像 registry.t-aaron.com/hyf-backend-base:latest
#
# 使用方法:
# docker build -f Dockerfile.new -t registry.t-aaron.com/hyf-backend:latest .
FROM registry.t-aaron.com/hyf-backend-base:latest
WORKDIR /app
# 只需要复制项目代码
COPY . .
# 暴露端口
EXPOSE 8000
# 启动命令:先执行数据库迁移,再启动 uvicorn
CMD ["sh", "-c", "alembic upgrade head 2>/dev/null || true && uvicorn main:app --host 0.0.0.0 --port 8000"]

49
build-base-multiarch.sh Executable file
View File

@ -0,0 +1,49 @@
#!/bin/bash
# 构建多架构基础镜像脚本
# 支持 AMD64 (x86_64) 和 ARM64 (aarch64) 架构
set -e
echo "=========================================="
echo "构建多架构基础镜像"
echo "镜像名称: registry.t-aaron.com/hyf-backend-base:latest"
echo "支持架构: linux/amd64, linux/arm64"
echo "=========================================="
# 检查 Docker Buildx 是否可用
if ! docker buildx version &> /dev/null; then
echo "错误: Docker Buildx 不可用,请先安装 Docker Buildx"
exit 1
fi
# 创建或使用 buildx builder
BUILDER_NAME="multiarch-builder"
if ! docker buildx inspect $BUILDER_NAME &> /dev/null; then
echo "创建新的 builder: $BUILDER_NAME"
docker buildx create --name $BUILDER_NAME --use
else
echo "使用现有的 builder: $BUILDER_NAME"
docker buildx use $BUILDER_NAME
fi
# 启动 builder
docker buildx inspect --bootstrap
echo ""
echo "开始构建多架构镜像..."
echo ""
# 构建并推送多架构镜像
docker buildx build \
--platform linux/amd64,linux/arm64 \
-f Dockerfile.base \
-t registry.t-aaron.com/hyf-backend-base:latest \
--push \
.
echo ""
echo "=========================================="
echo "构建完成!"
echo "镜像已推送到: registry.t-aaron.com/hyf-backend-base:latest"
echo "支持的架构: AMD64, ARM64"
echo "=========================================="