Synology DSM: cron job futtatása docker konténerben

Azt hiszem DSM 5.1 óta lehet futtatni docker konténereket, ami egy új világot nyitott meg a Synology NAS-ok előtt (a QNAP-ban már jó ideje van docker és qemu is). Viszont szembesültem azzal, hogy azért nem kapunk mindig teljes értékű virtualizált rendszert. Az első ilyen fájó pont az volt, hogy a cron-t hackelni kell, hogy működjön.

Nos talán a legegyszerűbb módszer az, hogy a docker gépben csinálunk egy scriptet, amiben benne vannak a futtatandó parancsok. Majd a Synology DNS-ben ütemezve meghívjuk azt a docker segítségével.

Ahhoz, hogy a docker gép konzolját kaphassuk meg, a következő parancsot használjuk: docker exec -i -t gepneve /bin/bash

Ez szépen le is fut parancssorból, de a cronból persze nem történik semmi. Igen, mert ott nincs szükség az interaktív (-i) módra és a pszeudo-TTY -ra sem (-t), viszont a -d kapcsoló lesz a mi barátunk (háttérfolyamat):

/usr/local/bin/docker exec -d gepnev/root/scriptnev

Ütemezett feladathoz nem érdemes belehackelni a DSM cronjába, hanem inkább a Vezérlőpult, Feladatütemezőben kell azt hozzáadni.

synology_cronjob1
synology_cronjob2