2020年12月17日木曜日

docker swram 上で使える swarm-cronjob をサクっと使ってみる

概要

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 件のコメント:

コメントを投稿