概要
swarm-cronjob は docker swarm 環境で定期的に実行させるコンテナを管理することができます
今回は簡単なサンプルを紹介します
環境
- Ubuntu 18.04
- docker 19.03.13
swarm-cronjob を swarm 環境にデプロイする
このコンテンなスケジューリング管理してくれます
とりあえず manager ノードで動作させます
指定可能な環境変数はこちらが参考になります
vim docker-compose.yml
version: "3.2"
services:
swarm-cronjob:
image: crazymax/swarm-cronjob
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "LOG_LEVEL=info"
deploy:
placement:
constraints:
- node.role == manager
docker stack deploy -c docker-compose.yml swarm_cronjob
cron で実行するコンテナのデプロイ
ラベルを指定するだけです
あとは好きなコンテナをデプロイすれば OK です
vim docker-compose2.yml
version: "3.2"
services:
test:
image: busybox
command: date
deploy:
mode: replicated
replicas: 0
labels:
- "swarm.cronjob.enable=true"
- "swarm.cronjob.schedule=* * * * *"
- "swarm.cronjob.skip-running=false"
restart_policy:
condition: none
docker stack deploy -c docker-compose2.yml test
デプロイ後にログを確認すると1分ごとに date が実行されているのが確認できると思いますdocker service logs -f test_test
0 件のコメント:
コメントを投稿