تايبسكريبت - توربوريبو/لامدا/ملف دوكر - خطأ في عدم العثور على الحزمة الداخلية


لدي مستودع أحادي باستخدام Turborepo يحتوي على دالة Lambda تعتمد على حزمة داخلية. بشكل أساسي، شيء مثل البنية التالية...

الخدمة هي "تغيير الحجم" وتعتمد على "@repo/image".

services
  resize
    package.json
    Dockerfile
    src
      index.ts
packages
  image
    package.json
    src
      helper.ts

هذا مبسط بالطبع.

ملف دوكر لخدمة "resize" يبدو هكذا (استنادًا إلى مثال دوكر من turborepo)...

FROM public.ecr.aws/lambda/nodejs:20 as base

FROM base AS builder
WORKDIR ${LAMBDA_TASK_ROOT}
RUN npm i turbo --global
COPY . .
RUN turbo prune resize --docker

FROM base AS installer
WORKDIR ${LAMBDA_TASK_ROOT}
COPY .gitignore .gitignore
COPY --from=builder /${LAMBDA_TASK_ROOT}/out/json/ .
COPY --from=builder /${LAMBDA_TASK_ROOT}/out/package-lock.json ./package-lock.json
RUN npm i
COPY --from=builder /${LAMBDA_TASK_ROOT}/out/full/ .
COPY turbo.json turbo.json
RUN npm run build -- --filter=resize...

FROM base AS runner
WORKDIR ${LAMBDA_TASK_ROOT}

RUN ls ${LAMBDA_TASK_ROOT}

COPY --from=installer /${LAMBDA_TASK_ROOT}/services/resize/package.json .
COPY --from=installer /${LAMBDA_TASK_ROOT}/services/resize/dist/index.js .

RUN ls ${LAMBDA_TASK_ROOT}

CMD [ "index.handler" ]

عندما أقوم بإنشاء ونشر دالة Lambda باستخدام حاوية Docker، أحصل على خطأ يشير إلى أنه لا يمكن العثور على الحزمة الداخلية "@repo/image".

المثال الخاص بـ Docker من Turborepo هو لتطبيق NextJS، لذا يجب أن هناك شيء أفتقده هنا. أنا لست مستخدمًا متقدمًا لـ Docker، لذا قد يكون هناك شيء آخر يحدث. الأمر الذي أستخدمه لبناء صورة Docker هو...

docker build --platform linux/amd64 -f services/resize/Dockerfile . -t resizeservice --no-cache

لقد رأيت أمثلة تستخدم إطار العمل "serverless"، لكنني أبحث عن استخدام نهج Docker مع CDK كأسلوب النشر الخاص بي.

شكراً لأي مساعدة يمكنك تقديمها.