簡體   English   中英

在 AWS ECS Fargate 中運行 Nodejs docker 時出錯

[英]Error when running Nodejs docker in AWS ECS Fargate

我們正在嘗試使用 ECS 在 AWS Fargate 中部署 NodeJS Docker。 代碼配置為通過 GitHub -> CodeBuild -> ECR -> ECS Fargate。

我們面臨standard_init_linux.go:219: exec user process caused: exec format error when we run the ECS Service。 當我們在本地運行圖像時,它運行沒有問題。 當我們搜索此錯誤時,有人提到這是由於架構不匹配造成的。

DockerFile:

FROM node:14 as builder

COPY . /contents
WORKDIR /contents

RUN npm install

RUN npm run build

...


EXPOSE 3000

我們嘗試的 CodeBuild 架構是

  1. AL2 aarch64 1.0/2.0
  2. AL2 x86-64 2.0/3.0
  3. Ubuntu 3.0/4.0/5.0

CodeBuild 的節點 14 的正確環境是什么? 還有其他可能導致問題的原因嗎?

任何幫助表示贊賞。 謝謝!

正如您所指出的,此問題通常是由架構不匹配引起的。 Fargate 不支持(尚) Graviton/Arm 架構,它始終需要基於 x86-64 的映像。 因為 Codebuild 支持多種架構,所以很可能這就是不匹配發生的地方。 請勿將AL2 aarch64 1.0/2.0與 CodeBuild 一起使用,因為該選項將配置 Graviton/Arm 環境進行構建,因此生成的映像無法在 Fargate 上運行。 另外兩個應該生成與 Fargate 兼容的圖像。

試金石(以確保這是由於架構不匹配造成的)將是動態配置一個基於 Graviton 的小型實例,並測試在 Fargate 上失敗並顯示該錯誤消息的 SAME 容器映像。 如果它適用於 Graviton,那就是問題所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM