【发布时间】:2026-01-04 09:10:01
【问题描述】:
我在做什么
我正在使用 AWS 批处理来为大型计算作业运行 docker 容器。据我所知,我已成功配置 ECR/ECS,但由于超出我对 docker(新手)的理解水平而运行所需命令时遇到问题
我需要做的是将以下命令传递给我的应用程序并启动我的应用程序以执行一些繁重的计算任务;下面列出的所有命令都必须存在。
问题
当我将提交作业发送到 AWS 批处理时出现问题;此服务从 ACR(亚马逊容器存储库)中提取图像并启动计算环境。当我尝试运行我传入的命令时,问题就出现了,下面我将通过它。
"command": [
"mkdir -p logging",
"chmod 777 logging/",
"docker run -t -i -e my-application", # container name
"-e APIKEY",
"-e BASEURI",
"-e APIUSER",
"-v WORKSPACE /logging:/src/log",
"DOCKERIMAGE",
"python my_app.py",
"-t APP_USER",
"-e APP_ENVIRONMENT",
"-u APP_USERNAME",
"-p APP_PASSWORD",
"-i IN_PATH",
"-o OUT_PATH",
"-b tmp/"
]
上面的命令产生以下错误
container_linux.go:370:启动容器进程导致:exec:“mkdir -p log”:$PATH 中找不到可执行文件
我尝试传入命令以回显环境变量 $PATH,但未能成功获得响应并导致类似错误。
我已经成功运行“ls”并且能够看到我的应用程序的目录内容。
但是,我无法运行包含在命令 [] 部分中的任何这些命令。我曾尝试只运行 python 等,希望得到更详细的错误,但没有成功。
简单的英语逻辑
- 如果不存在,则创建名为 logging 的路径
- 设置日志记录权限
- 运行 docker 容器并同时传递环境变量
- 告诉 docker 运行 python 文件 my_app.py 并传入预期的运行时参数
- 执行并执行python3应用程序中指定的所需逻辑
问题
- 为什么我不能在这里创建一个名为“logging”的目录我在哪里?
- 我是否按照 AWS 批处理的定义正确运行这些程序?或码头工人
- 我遗漏了什么或哪里出错了?
【问题讨论】:
标签: python-3.x amazon-web-services docker aws-batch