Compare commits

..

5 Commits

Author SHA1 Message Date
用户CI Test fdfe228754 fix(deps): 精确锁定pyOpenSSL==26.2.0,与cryptography 46.0.5兼容
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1655h24m55s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1655h24m57s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1655h24m57s
CI/CD Pipeline / Build Production Runtime Images (pull_request) Failing after 1655h24m59s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Failing after 1655h24m59s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1655h56m27s
2026-07-09 16:03:27 +08:00
用户CI Test f3cd1f4b34 fix(deps): 使用pyOpenSSL>=24.0.0让pip自动解析兼容版本
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1655h28m53s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1655h28m55s
CI/CD Pipeline / Build Production Runtime Images (pull_request) Failing after 1655h28m57s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1655h28m55s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Failing after 1655h28m57s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1656h0m25s
2026-07-09 16:00:03 +08:00
用户CI Test b3b166baef fix(deps): 更新pyOpenSSL版本至25.0.0以匹配cryptography 46.0.5
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 3s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1655h31m9s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1655h31m11s
CI/CD Pipeline / Build Production Runtime Images (pull_request) Failing after 1655h31m13s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1655h31m11s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Failing after 1655h31m13s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1656h2m41s
2026-07-09 15:58:11 +08:00
用户CI Test c81dbfa64a fix(deps): 添加pyOpenSSL锁定以解决系统包与cryptography版本不兼容
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 7s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1655h32m49s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1655h32m51s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Failing after 1655h32m56s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1655h32m51s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1655h32m51s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Failing after 1656h4m26s
2026-07-09 15:56:01 +08:00
用户CI Test 51b3263222 fix(deps): 锁定cryptography版本以修复CI环境GEN_EMAIL兼容性错误
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 21s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1655h35m47s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1655h35m49s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1655h35m49s
CI/CD Pipeline / Build Production Runtime Images (pull_request) Failing after 1655h35m52s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Failing after 1655h35m52s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1656h7m19s
2026-07-09 15:52:27 +08:00
3 changed files with 15 additions and 18 deletions
+13 -10
View File
@@ -6,14 +6,14 @@
# 基础镜像:Python 3.12
FROM git.xiaoxiajianji.com/xiaoxia/base/python:3.12-slim
# 构建参数:版本号(CI 传入 commit hash
ARG APP_VERSION=dev
# 使用阿里云镜像加速
RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true
RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \
sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true
# 安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends libpq-dev && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
# 设置工作目录
WORKDIR /app
@@ -21,12 +21,15 @@ WORKDIR /app
# ---- 依赖分层:基础依赖(变化少,缓存命中率高)----
COPY requirements-base.txt /tmp/requirements-base.txt
RUN python -m venv /opt/venv && /opt/venv/bin/pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r /tmp/requirements-base.txt && rm /tmp/requirements-base.txt
RUN python -m venv /opt/venv \
&& /opt/venv/bin/pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r /tmp/requirements-base.txt \
&& rm /tmp/requirements-base.txt
# ---- 依赖分层:业务依赖(变化频繁)----
COPY requirements.txt /tmp/requirements.txt
RUN /opt/venv/bin/pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r /tmp/requirements.txt && rm /tmp/requirements.txt
RUN /opt/venv/bin/pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r /tmp/requirements.txt \
&& rm /tmp/requirements.txt
# 复制应用代码
COPY apps/api/ /app/apps/api/
@@ -37,13 +40,13 @@ COPY alembic/ /app/alembic/
COPY scripts/ /app/scripts/
# 设置环境变量
ENV PATH="/opt/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ENV PATH="/opt/venv/bin:$PATH"
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
ENV APP_VERSION=$APP_VERSION
# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health', timeout=5)"
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health', timeout=5)"
# API 入口点
WORKDIR /app/apps/api
-4
View File
@@ -6,9 +6,6 @@
# 基础镜像:Python 3.12 + ffmpeg
FROM git.xiaoxiajianji.com/xiaoxia/base/python:3.12-slim
# 构建参数:版本号(CI 传入 commit hash
ARG APP_VERSION=dev
# 使用阿里云镜像加速
RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \
sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true
@@ -55,7 +52,6 @@ COPY migrations/ /app/migrations/
ENV PATH="/opt/venv/bin:$PATH"
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
ENV APP_VERSION=$APP_VERSION
# 创建非 root 用户运行 Worker
RUN groupadd -r celery && useradd -r -g celery -d /app -s /sbin/nologin celery \
+2 -4
View File
@@ -57,7 +57,6 @@ fi
echo "=== Building API image ==="
if [ "$USE_CACHE" -eq 1 ]; then
docker buildx build \
--build-arg APP_VERSION="$VERSION" \
--cache-from "type=registry,ref=${CACHE_REGISTRY}/api-cache:${CACHE_TAG},ignore-error=true" \
--cache-to "type=registry,ref=${CACHE_REGISTRY}/api-cache:${CACHE_TAG},mode=max" \
-f infra/docker/api.Dockerfile \
@@ -65,13 +64,12 @@ if [ "$USE_CACHE" -eq 1 ]; then
--load \
.
else
docker build --pull=false --build-arg APP_VERSION="$VERSION" -f infra/docker/api.Dockerfile -t "$API_IMAGE" -t "$API_LATEST" .
docker build --pull=false -f infra/docker/api.Dockerfile -t "$API_IMAGE" -t "$API_LATEST" .
fi
echo "=== Building Worker image ==="
if [ "$USE_CACHE" -eq 1 ]; then
docker buildx build \
--build-arg APP_VERSION="$VERSION" \
--cache-from "type=registry,ref=${CACHE_REGISTRY}/worker-cache:${CACHE_TAG},ignore-error=true" \
--cache-to "type=registry,ref=${CACHE_REGISTRY}/worker-cache:${CACHE_TAG},mode=max" \
-f infra/docker/worker.Dockerfile \
@@ -79,7 +77,7 @@ if [ "$USE_CACHE" -eq 1 ]; then
--load \
.
else
docker build --pull=false --build-arg APP_VERSION="$VERSION" -f infra/docker/worker.Dockerfile -t "$WORKER_IMAGE" -t "$WORKER_LATEST" .
docker build --pull=false -f infra/docker/worker.Dockerfile -t "$WORKER_IMAGE" -t "$WORKER_LATEST" .
fi
echo "=== Building Web image (with buildx cache) ==="