How to run a cron job inside a docker container?

前端 未结 20 1596
無奈伤痛
無奈伤痛 2020-11-22 05:36

I am trying to run a cronjob inside a docker container that invokes a shell script.

Yesterday I have been searching all over the web and stack overflow, but I could

20条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-22 06:16

    Define the cronjob in a dedicated container which runs the command via docker exec to your service.

    This is higher cohesion and the running script will have access to the environment variables you have defined for your service.

    #docker-compose.yml
    version: "3.3"
    services:
        myservice:
          environment:
            MSG: i'm being cronjobbed, every minute!
          image: alpine
          container_name: myservice
          command: tail -f /dev/null
    
        cronjobber:
         image: docker:edge
         volumes:
          - /var/run/docker.sock:/var/run/docker.sock
         container_name: cronjobber
         command: >
              sh -c "
              echo '* * * * * docker exec myservice printenv | grep MSG' > /etc/crontabs/root
              && crond -f"
    

提交回复
热议问题