我目前正在运行一项服务,该服务在Openstack中旋转具有设置的到期时间的虚拟化测试平台。该服务当前在docker容器中运行。但是,要分离清理(到期时间处理),我有一个单独的脚本,该脚本充当独立的客户端并向服务发出删除请求。他们目前住在同一个容器中。
泊坞窗入口点看起来像这样
#!/bin/bash
#
# Used by Docker in order to run both the server and the
# cleaner process at the same time. When server dies
# or is killed, cleaner is killed as well to ensure that
# the container exits.
#
# turn on bash's job control
set -m
# Start the primary process and put it in the background
poetry run waitress-serve --port=5000 --threads=8 --call "server:app.create_app" &
# Write cleaner.cfg file
cat << EOF > /etc/cleaner.ini
[conf]
host: 127.0.0.1
port: 5000
EOF
# Start the helper process
poetry run cleaner -c /etc/cleaner.ini &
# now we bring the primary process back into the foreground
# and leave it there
fg %1
# Once the primary process dies, lets kill the helper
# script
kill %2
这一直可以正常工作...但是它变成了一个问题,就是如果清洁器由于我引入的错误或其他原因而挂起或死亡,我需要手动重新进入容器并重新启动清洁器。背景。另一个问题是日志在服务器日志中丢失,并且很难看到问题何时发生。清洁器只会每15分钟运行一次。
我想将其分解成自己的容器。我想从python清洁程序脚本中删除睡眠,并让脚本在一定间隔内被调用。我了解Cron在docker上下文中的表现不佳:
docker logs ...
?考虑到这一点。我真的很想让“ Cron”方面来自docker容器之外。每15分钟只需docker run
。有人做过这样的事情吗?有本地支持吗?最重要的是,是否有一种方法可以在两次运行之间保存/附加日志,以免每次旋转都不会丢失日志? Google没有指出我任何有用的资源。谢谢。