Score:0

เกิดข้อผิดพลาดในการสร้าง AWS Lambda Node 14arm64 ด้วย Sharp บนอิมเมจ Docker

ธง jp

ฉันกำลังเปลี่ยนการตั้งค่าโหนดจาก โหนด 14 x64 ถึง โหนด 14 arm64 ในรายการ Amazon ECR (Docker)

มันสร้างโดยไม่มีปัญหาเมื่อฉันใช้ภาพนี้: จาก aws/lambda/nodejs:14 และคำสั่งนี้เพื่อติดตั้งชาร์ป RUN npm install --platform=linux ชาร์ป

ตอนนี้ฉันจำเป็นต้องใช้ โหนด 14 arm64 แต่เปิดใช้ข้อผิดพลาดนี้ขณะสร้างด้วย Sharp JS (Linux arm 64):

ไฟล์นักเทียบท่า:

จาก public.ecr.aws/lambda/nodejs:14-arm64

#คำสั่งExec
คัดลอก index.js package.json ${LAMBDA_TASK_ROOT}
คัดลอกฟอนต์ ${LAMBDA_TASK_ROOT}/fonts/
คัดลอก src ${LAMBDA_TASK_ROOT}/src/

#คำสั่ง
RUN แคช npm สะอาด --force
เรียกใช้ rm -rf node_modules
RUN npm install --arch=arm64 --platform=linux ชาร์ป

CMD ["ดัชนีตัวจัดการ"]

คำสั่งสร้าง:

นักเทียบท่า build -t my-project-v1
แท็กนักเทียบท่า my-project-v1:latest {ACCOUNT}.dkr.ecr.us-east-1.amazonaws.com/my-project-v1:latest
นักเทียบท่าพุช {ACCOUNT}.dkr.ecr.us-east-1.amazonaws.com/my-project-v1:latest

ข้อผิดพลาด:

=> ข้อผิดพลาด [6/8] RUN npm ติดตั้ง 7.3 วินาที
------                                                                                                                                                
 > [6/8] ติดตั้ง RUN npm:                                                                                                                             
#10 2.231 npm WARN เลิกใช้งาน [email protected]: API ของ querystring ถือเป็น Legacy รหัสใหม่ควรใช้ URLSearchParams API แทน       
#10 2.249 npm WARN เลิกใช้งาน [email protected]: โปรดอัปเกรดเป็นเวอร์ชัน 7 หรือสูงกว่า เวอร์ชันเก่าอาจใช้ Math.random() ในบางสถานการณ์ ซึ่งเป็นที่ทราบกันดีว่ามีปัญหา ดูรายละเอียด https://v8.dev/blog/math-random                                                                       
#10 6.947                                                                                                                                             
#10 6.947 > [email protected] ติดตั้ง /var/task/node_modules/sharp
#10 6.947 > (โหนดติดตั้ง/libvips && โหนดติดตั้ง/dll-copy && ติดตั้งล่วงหน้า) || (โหนดติดตั้ง/สามารถคอมไพล์ && node-gyp สร้างใหม่ && โหนดติดตั้ง/dll-copy)
#10 6.947 
#10 7.046 คมชัด: ข้อผิดพลาดในการติดตั้ง: ใช้กับ glibc 2.26 ต้องติดตั้ง libvips >= 8.11.3 ด้วยตนเอง
#10 7.046 คมชัด: โปรดดู https://sharp.pixelplumbing.com/install สำหรับการอ้างอิงที่จำเป็น
#10 7.172 npm เตือนการข้ามการพึ่งพาทางเลือก: fsevents@~2.3.2 (node_modules/chokidar/node_modules/fsevents):
#10 7.173 npm คำเตือนไม่สนับสนุนการข้ามการพึ่งพาทางเลือก: แพลตฟอร์มที่ไม่รองรับสำหรับ [email protected]: ต้องการ {"os":"darwin","arch":"any"} (ปัจจุบัน: {"os":"linux"," โค้ง":"arm64"})
#10 7.174 
#10 7.234 น. ข้อผิดพลาด! รหัส ELIFECYCLE
#10 7.235 น. ข้อผิดพลาด! ผิด 1
#10 7.242 น. ข้อผิดพลาด! [email protected] ติดตั้ง: `(โหนดติดตั้ง/libvips && โหนดติดตั้ง/dll-copy && ติดตั้งล่วงหน้า) || (โหนดติดตั้ง/สามารถคอมไพล์ && node-gyp สร้างใหม่ && โหนดติดตั้ง/dll-copy)'
#10 7.242 น. ข้อผิดพลาด! สถานะทางออก 1
#10 7.243 น. ผิดพลาด! 
#10 7.244 น. ผิดพลาด! ล้มเหลวที่สคริปต์การติดตั้ง [email protected]
#10 7.244 น. ผิดพลาด! นี่อาจไม่ใช่ปัญหากับ npm น่าจะมีเอาต์พุตการบันทึกเพิ่มเติมด้านบน
#10 7.261 
#10 7.262 น. ข้อผิดพลาด! สามารถดูบันทึกทั้งหมดของการวิ่งครั้งนี้ได้ใน:
#10 7.262 น. ข้อผิดพลาด! /root/.npm/_logs/2022-01-10T13_28_10_709Z-debug.lo
Score:2
ธง cn

ข้อความแสดงข้อผิดพลาดแจ้งว่าปัญหาเกี่ยวข้องกับ libvips: คมชัด: ข้อผิดพลาดในการติดตั้ง: ใช้กับ glibc 2.26 ต้องติดตั้ง libvips >= 8.11.3 ด้วยตนเอง. ค้นหาใน เอกสารที่คมชัดอย่างเป็นทางการ ฉันพบว่าในเครื่องอื่นที่ไม่ใช่ Linux x64 (เช่นในกรณีของคุณ: Linux arm64) คุณควรเพิกเฉยต่อส่วนกลาง libvips ปรับปรุง SHARP_IGNORE_GLOBAL_LIBVIPS ตัวแปรสภาพแวดล้อม:

การติดตั้ง npm
SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm ติดตั้ง --arch=x64 --platform=linux คมชัด

ดังนั้นคุณควรอัปเดตของคุณ ไฟล์นักเทียบท่า ดังต่อไปนี้:

จาก public.ecr.aws/lambda/nodejs:14-arm64

#คำสั่งExec
คัดลอก index.js package.json ${LAMBDA_TASK_ROOT}
คัดลอกฟอนต์ ${LAMBDA_TASK_ROOT}/fonts/
คัดลอก src ${LAMBDA_TASK_ROOT}/src/

#คำสั่ง
RUN แคช npm สะอาด --force
เรียกใช้ rm -rf node_modules

## อัปเดตไฟล์นักเทียบท่าด้วยบรรทัดต่อไปนี้:
ติดตั้ง RUN npm
RUN SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install --arch=x64 --platform=linux ชาร์ป

CMD ["ดัชนีตัวจัดการ"]
Matheus Pereira avatar
jp flag
ฉันลองสิ่งนี้แล้ว แต่ข้อผิดพลาดก็เหมือนเดิม ฉันคิดว่ารูปภาพ `public.ecr.aws/lambda/nodejs:14-arm64` ยังไม่รองรับไลบรารี่ที่คมชัดเพราะรูปภาพ `amazon/aws-lambda-nodejs:14` นั้นสมบูรณ์แบบด้วย x64 ที่คมชัด
Luiz Lelis avatar
cn flag
เมื่อใช้ 'dockerfile' เดียวกันกับที่คุณแสดงด้านบน ฉันสามารถสร้างข้อผิดพลาดซ้ำและแก้ไขได้ด้วย 'SHARP_IGNORE_GLOBAL_LIBVIPS=1` คุณแน่ใจหรือว่าข้อผิดพลาดที่แสดงใน `stdout' นั้นเหมือนกัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา