是否有一种方法可以使Docker容器停止时自动停止AWS ECS Fargate任务?
答案 0 :(得分:1)
泊坞窗容器应具有CMD脚本。当该CMD脚本终止时,泊坞窗容器将停止,因此,您的ECS任务也应停止。请注意,如果您已将其作为某种服务启动,则ECS将启动替换任务(例如,在出现故障或错误时保持Web服务器正常运行)
如果您的ECS任务在容器“停止”时没有停止,那么我猜您的命令指向的是永不停止的东西(例如BASH shell),而您正在以其他方式启动主任务。如果您的容器是以规范的方式构建的,那么这应该“起作用”。
答案 1 :(得分:0)
启动任务,而不是服务。服务用于需要长期保持运行状态的长时间运行的流程。您的用例需要一个任务,一旦完成,该任务将退出容器。让您的Dockerfile使用CMD选项。示例:
FROM node:6
WORKDIR /usr/local/src/app
COPY . .
# ...
CMD [ "node", "script-name.js" ]
确保您的脚本正确退出,并且即使在cmd脚本终止后,在此期间没有其他启动的进程正在运行,这可能会导致您的容器保持更长时间的活动。