任务定义中的命令导致异常

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

最初在

Dockerfile
我使用

 CMD python /app/src/main.py

在我的 docker 容器中启动一个进程。它按预期工作。

我现在正在将这些 docker 镜像部署到 aws ecs。

我想将这个

CMD
从 Dockerfile 中移出,并将其作为任务定义的一部分,因为我认为它将为我提供更大的灵活性。

但是,当 docker 容器启动时,它会发出以下异常:

container_linux.go:247: starting container process caused "exec: \"python
/app/src/main.py\": stat python /app/src/main.py: no such file or directory"

显然 ecs 将 CMD 参数视为引用单个文件。

我尝试将命令定义为列表,即

["python", " /app/src/main.py"]
但它只是引发了一个不同的错误:
container_linux.go:247: starting container process caused "exec: \"[\\\"python\\\"\": executable file not found in $PATH"

docker amazon-ecs
2个回答
7
投票

我需要将命令作为逗号分隔的字符串,即

python,/app/src/main.py


0
投票

我们使用 Terraform,其中任务定义以 JSON 格式定义。其中,命令是一个 JSON 数组,包含命令的每个部分作为一个元素:

{
  ...,
  "command" : ["python3", "/app/src/main.py"],
}
© www.soinside.com 2019 - 2024. All rights reserved.