Trabajos cron en Debian / Ubuntu Resumen de Docker Swarm

Trabajos cron en Debian / Ubuntu Resumen de Docker Swarm

Quería saber cómo configurar un contenedor de trabajos cron separado en mi enjambre de ventana acoplable para poder ejecutar trabajos cron en un proceso/contenedor separado. Me gustaría resumir algunos conocimientos que adquirí en varias publicaciones hasta que todos mis trabajos cron funcionaron en Docker Swarm. Agregue mejoras en los comentarios o edítelas directamente si puede.

Esto se probó con Docker 17.04 y un contenedor debian:jessie para trabajos cron.

Respuesta1

construir

archivo acoplablepara el contenedor de trabajos cron, instala cron, inicia el servicio cron al iniciar el contenedor y luego mantiene el contenedor ejecutándose con el comando tail

RUN apt-get update && apt-get install -qq -yes cron
CMD service cron start && tail -f /dev/null

composición

docker-compose.yml

services:
  cron:
    image: debian:jessie
    volumes:
      - mycronjobs:/etc/cron.d

archivos de trabajo

en la ruta raíz de su proyecto, tenga una carpeta que contenga sus trabajos cron (use guiones bajos solo para caracteres especiales en el nombre del archivo)

me@machine:/projectdir$ ls -al
-rw-rw-r--  1 me me  978 Apr 26 17:49 docker-compose.yml
-rw-rw-r--  1 me me 1052 Apr 26 18:06 Dockerfile
drwxrwxr-x  6 me me 4096 Apr 26 16:57 mycronjobs

me@machine:/projectdir$ ls -al mycronjobs
-rw-rw-r--  1 me me  978 Apr 26 17:49 job-dash-bad
-rw-rw-r--  1 me me 1052 Apr 26 18:06 job_underscore_good
-rw-rw-r--  1 me me 1052 Apr 26 18:06 check_running

definición de trabajo

puedes tener trabajos cron en

  • /var/spool/cron/crontabs/mycrontabque se crean a través de la herramienta cli$crontab/ también conocido como crontabs de usuario

  • /etc/crontabsque es una colección de crontabs para todo el sistema

    • '* * * * *' raíz /bin/touch /projectdir/system_crontab_works # sin 's
  • /etc/cron.dailyque es una carpeta que contiene scripts bash simples que se ejecutan diariamente
  • /etc/cron.dque es una carpeta que contiene trabajos cron de todo el sistema en archivos similares a/etc/crontabs. Los archivos no deben contener guiones, solo guiones bajos.
    • sudo vi /etc/cron.d/system_cron
    • '* * * * *' raíz /bin/touch /projectdir/system_cron.d_works # sin 's
    • sudo chown root:root /etc/cron.d/system_cron

información relacionada