AWS ECS OCI 运行时创建失败:runc 创建失败:参数不能为空:未知

问题描述 投票:0回答:1

我正在尝试将服务部署到 ECS。这是一个非常简单的 Dockerfile,容器无法部署并出现错误:

CannotStartContainerError: ResourceInitializationError: failed to create new container runtime task: failed to create shim task: OCI runtime create failed: runc create failed: args must not be empty: unknown:

不确定这意味着什么。听起来好像无法创建容器,因为某个地方没有定义参数。

这是 Dockerfile

FROM node:16

RUN mkdir -p /home/node/app/node_modules/ && chown -R node:node /home/node/app

WORKDIR /home/node/app
COPY . /home/node/app

RUN npm install
RUN npm run build
RUN chmod +x /home/node/app/start.sh

ENTRYPOINT [ "/bin/sh", "./start.sh" ]

start.sh 脚本非常简单,它回显一些文本,设置一些环境变量并调用节点服务。事实上,cloudwatch 没有显示此脚本中回显的任何内容,这使得它看起来根本没有调用该脚本。

我尝试使用完全相同的taskdef成功部署其他容器 我尝试了 CMD 而不是 ENTRYPOINT ,它没有改变任何东西 我尝试使用node-alpine代替node 这个特定容器似乎有问题,但它在本地运行良好。

我已经尝试破译这个错误的含义大约 8 个月了,但运气不佳。

amazon-web-services docker amazon-ecs
1个回答
0
投票

明白了...

我必须在 taskdef 中明确定义

entrypoint
command
workingDirectory
。似乎没有从 Dockerfile 中获取。

"entryPoint": [
    "/bin/bash",
    "-c"
],
"command": [
    "./start.sh"
],
"workingDirectory": "/home/node/app",
© www.soinside.com 2019 - 2024. All rights reserved.