amazon-web-services - AWS Batch 无法启动 Dockerfile -standard_init_linux.go :219: exec user process caused: exec format error

标签 amazon-web-services docker ubuntu

我正在尝试使用 AWS Batch 启动一个 linux 服务器,它本质上将执行 AWS 中包含的 fetch and go 示例(从 S3 下载一个 SH 并运行它)。
AWS Batch 对任何人都有效吗?
aws fetch_and_go 示例总是失败,甚至遵循模仿 aws 示例的其他人在线指南。
我尝试使用大量 RUN 和 CMD 为 amazonlinux:latest 和 ubuntu:20.04 创建 Dockerfile。
脚本似乎总是因错误而失败:

standard_init_linux.go:219: exec user process caused: exec format error
起初我认为这可能与我在 amazonlinux 中的部署访问权限有关,因此在 she 文件上使用了 chmod 777、chmod -x 等。
棺材上的最后一颗钉子,我现在的剧本是:
FROM ubuntu:20.04
使用 AWS Batch 启动它,没有传递命令或参数,它仍然失败并显示相同的错误代码。这几乎暗示我的 AWS Batch 存在设置问题(我使用默认向导设置,除了更改为 a1.medium 服务器)或 AWS Batch 存在一些重大问题。
有没有人在 AWS Batch 启动他们自己的 Dockerfile 方面取得了任何成功?他们可以分享他们的示例和/或设置参数吗?
先感谢您。

最佳答案

A1 实例是基于 ARM 的第一代 Graviton CPU。您尝试运行的镜像很可能需要 x86 CPU(Intel 或 AMD)。任何带有“g”的实例类(“c6g”或“m5g”)都是 Graviton2,它也是基于 ARM 的,不适用于默认示例。
您可以通过自己启动 A1 实例并运行容器(在安装 docker 之后)来测试特定容器是否会运行。我的猜测是你会得到同样的错误。在 Intel 或 AMD 实例上运行应该可以工作。
要将 Batch 与 ARM 结合使用,您的容器化应用程序将需要在 ARM 上运行。如果您指出确切的示例,我可以提供有关如何调整以在 A1 或 Graviton2 实例上运行的更多详细信息。

关于amazon-web-services - AWS Batch 无法启动 Dockerfile -standard_init_linux.go :219: exec user process caused: exec format error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66382066/

相关文章:

python - 为什么 AWS SageMaker 运行 Web 服务器进行批量转换?

mysql - AWS : Not able to connect to mysql(rds) from wordpress

node.js - AWS 上的媒体转换

amazon-web-services - 在 aws-cli 中,如何根据条件从 DynamoDB 中删除项目?

docker - 在 Docker 中运行时出错 指定的框架 'Microsoft.AspNetCore.App' ,版本 '2.1.6' 未找到。在

Wordpress 文件和目录权限 : cannot open or save with my local user

docker - 使用 docker compose 为 Ninja 开具发票 - 错误 500

linux -/bin/sh : 1: clickhouse: Operation not permitted

ubuntu - Snappy Ubuntu Core 无法启动

linux - Ubuntu 15.10 中 KDE Plasma 桌面安装错误 "All Shell Packages Missing"