Mic*_*čka 24 amazon-web-services amazon-ecs node.js docker aws-fargate
我对这个 Docker 世界还很陌生,我正在尝试将图像(nodejs-typescript 服务)从 aws ECR 部署到 aws ECS,但是当我在集群内创建服务时,会出现此错误,并且任务永远不会运行:
exec /usr/local/bin/docker-entrypoint.sh: exec format error
Run Code Online (Sandbox Code Playgroud)
我的 Dockerfile 如下所示:
FROM node:lts-alpine
WORKDIR /usr/app
COPY package*.json ./
COPY tsconfig*.json ./
RUN yarn install --quiet
RUN yarn global add pm2
COPY . .
RUN yarn build
CMD ["pm2-runtime", "build/src/localServer.js"]
Run Code Online (Sandbox Code Playgroud)
当我构建映像并运行它时,它在我的电脑上运行良好:
FROM node:lts-alpine
WORKDIR /usr/app
COPY package*.json ./
COPY tsconfig*.json ./
RUN yarn install --quiet
RUN yarn global add pm2
COPY . .
RUN yarn build
CMD ["pm2-runtime", "build/src/localServer.js"]
Run Code Online (Sandbox Code Playgroud)
任务定义在 Linux/X86_64 上运行。
有什么建议或提示可以找出问题所在吗?谢谢!
编辑:当我像这样向 Dockerfile 添加 ENTRYPOINT 时
# same steps
COPY . .
RUN yarn build
ENTRYPOINT ["pm2-runtime", "build/src/localServer.js"]
Run Code Online (Sandbox Code Playgroud)
它抛出这个错误exec /usr/local/bin/pm2-runtime: exec format error。pm2-runtime当我更改为时也会发生同样的情况node
# same steps
COPY . .
RUN yarn build
ENTRYPOINT ["node", "build/src/localServer.js"]
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
Mic*_*čka 78
我发现问题出在哪里了。这是我的 Apple M1 芯片发挥了不兼容的魔力。对于那些有同样问题的人来说,只需在 Dockerfile 中添加平台--platform=linux/amd64似乎就可以解决问题:
FROM --platform=linux/amd64 node:lts-alpine
# more instructions...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12127 次 |
| 最近记录: |