From 82932758b5f3bf71c0332fec2d0cc8ab1862931a Mon Sep 17 00:00:00 2001 From: yml Date: Tue, 19 May 2026 22:35:02 +0800 Subject: [PATCH] fix: correct Python venv path in production Dockerfile to match OCR worker lookup logic (.venv inside ocr-worker dir) --- apps/backend/data/cloudtentacles-session.json | 2 +- .../data/kuaishou-cloud-fulfillment.json | 25 +++++++++++++++++++ .../backend/data/kuaishou-eticket-source.json | 7 ------ deploy/docker/backend.Dockerfile | 13 +++++----- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/apps/backend/data/cloudtentacles-session.json b/apps/backend/data/cloudtentacles-session.json index d85efef2..137c803e 100644 --- a/apps/backend/data/cloudtentacles-session.json +++ b/apps/backend/data/cloudtentacles-session.json @@ -3,7 +3,7 @@ "baseUrl": "https://123.207.217.176", "username": "17665234375", "phone": "17665234375", - "loggedInAt": "2026-05-14T09:29:51.511Z", + "loggedInAt": "2026-05-19T13:48:31.443Z", "deviceId": "-", "deviceType": 0 } diff --git a/apps/backend/data/kuaishou-cloud-fulfillment.json b/apps/backend/data/kuaishou-cloud-fulfillment.json index 92fd5d03..5c1ca0e0 100644 --- a/apps/backend/data/kuaishou-cloud-fulfillment.json +++ b/apps/backend/data/kuaishou-cloud-fulfillment.json @@ -1,6 +1,31 @@ { "enabled": true, "items": [ + { + "id": "套装-浪漫天命", + "enabled": true, + "priority": 100, + "provider": "91kaquan", + "platform": "kuaishou", + "shopId": "3676797936", + "internalSkuCode": "套装-浪漫天命", + "internalSkuName": "183999074511936", + "externalSkuCode": "183999074511936", + "externalItemId": "183999074511936", + "externalSkuName": "183999074511936", + "resolvedSkuName": "183999074511936", + "cloudSourceKey": "default", + "cloudSkuId": 28, + "cloudSkuName": "", + "vnKey": "1", + "autoBuyEnabled": true, + "minAssetReserve": 0, + "autoReturnNumberAfterDispatch": false, + "autoConsumeAfterDispatch": false, + "kuaishouConsumeShopId": "3676797936", + "kuaishouConsumeShopName": "小鱼儿游戏服务店", + "notes": "从 91卡券订单 2613900255300561 导入" + }, { "id": "91卡券订单取样导入", "enabled": true, diff --git a/apps/backend/data/kuaishou-eticket-source.json b/apps/backend/data/kuaishou-eticket-source.json index ff03aa5c..400be546 100644 --- a/apps/backend/data/kuaishou-eticket-source.json +++ b/apps/backend/data/kuaishou-eticket-source.json @@ -9,13 +9,6 @@ "userAvatar": "https://p2-pro.a.yximgs.com/uhead/AB/2024/11/17/20/BMjAyNDExMTcyMDQ3NTdfMzY3Njc5NzkzNl8yX2hkODUyXzIwNg==_s.jpg", "enabled": true }, - { - "shopId": "140000112682050", - "kshopName": "洋洋运营", - "cookie": "_did=web_412376696871A458; did=web_pdd5bx2mm4sdx78w7zg3oj1uya9cqs59; bUserId=1000598999789; userId=140000112682050; merchantSellerId=4269276762; sid=kshop.api; kshop.api_st=Cgxrc2hvcC5hcGkuc3QSoAEHQpSWH5NWp5ReO9nWzyqJIZ9NsB7YhqywKcjVzUAf1YBJODvE9HHSA5jNrO1kyoYtQmK7hlUmD7FCkDjvzTNoDJCd5mGiu_oFbUr-JYJ2--q_QNhHlY13he_NQSPQ7EYDf54NBMk1jKQNarlUnB-1WosXNgV7G5YNeZXr8CDMWkDwKUaDnG-2JGmPTsouINryXjteKsj4YZEzwWHR2GTZGhJex1zz60qNCRAHidwVN1PhX4wiIN3oIIsuly3Zub__D_EnvOhbCP_Ma363nNk4hmpKm_NpKAUwAQ; kshop.api_ph=fabd3673d2238257e37fc892abf2e8e73fd4; KS-CSRF-Token=179C60C8C34FB066A71221C9EE64B5CE; merchantSessionKey=1777795509898_209a40cd7ad55a7e842151ee83de41bb", - "userAvatar": "https://p2-pro.a.yximgs.com/uhead/AB/2024/07/23/17/BMjAyNDA3MjMxNzA1MThfNDI2OTI3Njc2Ml8yX2hkNDg1XzgxNQ==_s.jpg", - "enabled": false - }, { "shopId": "4269276762", "kshopName": "稚嫩游戏交易店", diff --git a/deploy/docker/backend.Dockerfile b/deploy/docker/backend.Dockerfile index 0d666042..8a7d6210 100644 --- a/deploy/docker/backend.Dockerfile +++ b/deploy/docker/backend.Dockerfile @@ -49,9 +49,9 @@ RUN --mount=type=cache,target=/ms-playwright-cache,sharing=locked \ # --- Python venv for OCR worker --- # Use a virtual environment instead of --break-system-packages COPY apps/backend/subservices/ocr-worker/ ./subservices/ocr-worker/ -RUN python3 -m venv /app/venv \ - && /app/venv/bin/pip install --no-cache-dir -U pip \ - && /app/venv/bin/pip install --no-cache-dir ./subservices/ocr-worker +RUN python3 -m venv /app/subservices/ocr-worker/.venv \ + && /app/subservices/ocr-worker/.venv/bin/pip install --no-cache-dir -U pip \ + && /app/subservices/ocr-worker/.venv/bin/pip install --no-cache-dir ./subservices/ocr-worker # --- Copy application source --- COPY apps/backend/ ./ @@ -101,9 +101,10 @@ COPY --from=builder /app/src ./src COPY --from=builder /app/config ./config # Playwright browsers COPY --from=builder /ms-playwright /ms-playwright -# Python venv for OCR worker -COPY --from=builder /app/venv ./venv -COPY --from=builder /app/subservices ./subservices +# Python venv for OCR worker (located at .venv inside subservices/ocr-worker) +COPY --from=builder /app/subservices/ocr-worker/.venv ./subservices/ocr-worker/.venv +COPY --from=builder /app/subservices/ocr-worker/src ./subservices/ocr-worker/src +COPY --from=builder /app/subservices/ocr-worker/pyproject.toml ./subservices/ocr-worker/pyproject.toml # --- Non-root user for security --- RUN groupadd -g 1001 appuser \