添加配置
This commit is contained in:
parent
51939cfec2
commit
9246d62cfa
|
|
@ -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
|
||||||
|
|
@ -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"]
|
||||||
|
|
@ -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 "=========================================="
|
||||||
Loading…
Reference in New Issue