微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

群 |启动一个服务只执行一次然后被删除

如何解决群 |启动一个服务只执行一次然后被删除

我有一个 Swarm 集群,我有一个服务,它只会创建一个容器,执行一个脚本,然后删除容器。目前它工作正常,容器执行脚本然后在执行后删除自己。但几秒钟后,服务重新启动容器并再次执行脚本。 但是我想在第一次执行后删除该服务,就像该服务多次不执行该工作一样。

我唯一的想法是在我启动服务的第一个脚本中,我放置了一个计时器,比如 4 秒,然后我就删除脚本中的服务:

#!/bin/bash

docker stack deploy -c docker-compose.yaml database-preapre
sleep 4
docker service rm database-prepare

但如果有一天,服务腾出更多时间来执行他的脚本,我会在他运行时切断服务。或者,如果服务真正快速地执行一次,然后在 3 秒后重新启动它自己以进行第二次执行。我不想砍他...

解决方法

为了解决这个问题,我只是在我的脚本中调整了一些东西。首先,在创建临时容器的脚本中,我只睡了 10 秒钟,然后销毁了容器。 (10 秒非常大,但我想确保容器有时间完成这项工作)

其次,当容器完成执行入口点脚本时,他将自己删除并重新启动(因为 swarm 重新启动它),但我不希望我的脚本在第二次执行期间向上,向下和向上并被切断,并且破坏工作。所以我在我的临时容器运行的脚本中添加了一个睡眠定时器,这样他就不会上下颠簸……他执行他的工作然后等待。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。