Jef*_*f V 6 amazon-ecs aws-fargate
我有一个使用以下 CMD 构建的 Docker 映像
# Dockerfile
...
CMD ["nginx", "-g", "daemon off;"]
Run Code Online (Sandbox Code Playgroud)
当我的任务定义不包含entryPoint或者command任务成功进入运行状态时。
{
"containerDefinitions": [
{
"image": "<myregistry>/<image>",
...
}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要在此容器的某些实例中运行代理,因此我使用entrypoint此任务来运行我的代理。问题是当我entryPoint向任务定义添加参数时,容器启动并立即停止。
这就是我正在做的添加entryPoint:
{
"containerDefinitions": [
{
"image": "<myregistry>/<image>",
...
"entryPoint": [
"custom-entry-point.sh"
],
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是以下内容custom-entry-point.sh:
#!/bin/bash
/myagent &
echo "CMD is: $@"
exec "$@"
Run Code Online (Sandbox Code Playgroud)
为了证实我对 CMD 被删除的怀疑,日志仅显示:
CMD is:
Run Code Online (Sandbox Code Playgroud)
如果我使用参数将 Dockerfile 中的 CMD 数组添加到任务定义中command,则它可以正常工作并且任务将启动:
{
"containerDefinitions": [
{
"image": "<myregistry>/<image>",
...
"entryPoint": [
"custom-entry-point.sh"
],
"command": [
"nginx",
"-g",
"daemon off;"
}
]
}
Run Code Online (Sandbox Code Playgroud)
日志显示了预期的结果:
CMD is: nginx -g daemon off;
Run Code Online (Sandbox Code Playgroud)
我有许多带有各种迭代的 docker 映像CMD,我不想将它们复制到我的任务定义中。似乎仅向任务定义添加an不应该用空值entryPoint覆盖 docker 映像。CMD
希望一些 ECS/fargate 专家能够帮助阐明前进的道路。
小智 2
一些技巧:
另请阅读本文以获得一些有用的背景: https://aws.amazon.com/blogs/opensource/demystifying-entrypoint-cmd-docker/
| 归档时间: |
|
| 查看次数: |
13272 次 |
| 最近记录: |