Skip to content

Instantly share code, notes, and snippets.

@multidis
Last active September 15, 2021 12:24
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save multidis/475e05fd6cdc63f31d53 to your computer and use it in GitHub Desktop.
Save multidis/475e05fd6cdc63f31d53 to your computer and use it in GitHub Desktop.
Cron job scheduling inside a Docker container.
#!/bin/sh
cd /home/testing
timeout 10 python /home/testing/testcron.py >>/var/log/crontesting.log 2>&1
# phusion baseimage initiates cron properly
# Use phusion/baseimage as base image. To make your builds reproducible, make
# sure you lock down to a specific version, not to `latest`!
# See https://github.com/phusion/baseimage-docker/blob/master/Changelog.md for
# a list of version numbers.
FROM phusion/baseimage:0.9.16
# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]
# install Ubuntu packages and other items as needed
# using python example here
# install dependencies from Ubuntu repositories
RUN apt-get -qq update && \
apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o DPkg::Options::="--force-confold" && \
apt-get install -y -q \
git \
build-essential \
python \
python-yaml \
python-dev \
python-setuptools \
python-pip \
&& \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# install python dependencies
RUN easy_install -U setuptools && \
pip install -U pip
# add cron scripts and make executable
RUN mkdir /home/testing
ADD testcron.py /home/testing/testcron.py
ADD cronrun.sh /home/testing/cronrun.sh
RUN chmod +x /home/testing/cronrun.sh
# cron schedule
ADD mycrontab /home/testing/mycrontab
RUN crontab /home/testing/mycrontab
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# Jobs:
# m h dom mon dow command
* * * * * /home/testing/cronrun.sh
#!/usr/bin/env python
import datetime
print "Cron job has run at %s" %datetime.datetime.now()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment