My way is the following
a cron service in docker-compose.yml
cron:
build:
context: ./path/to/dockerfile
dockerfile: Dockerfile-dev
volumes_from:
- applications
command:
- '* * * * * echo "Hello $(date)" >>/var/log/cron.log 2>&1'
Dockerfile
FROM debian:jessie
RUN apt-get update && apt-get install -y cron && \
rm -r /var/lib/apt/lists/*
COPY cron-entrypoint.sh /cron-entrypoint.sh
RUN chmod +x /cron-entrypoint.sh
ENTRYPOINT ["/cron-entrypoint.sh"]
#!/bin/bash
touch /var/spool/cron/crontabs/root
if [ -n "$1" ]; then
args=("$@")
argn=$#
for i in $(seq $argn)
do
echo "${args[$i-1]}" >> /var/spool/cron/crontabs/root
done
fi
cp /var/spool/cron/crontabs/root /tmp/temp.txt
printenv | cat - /tmp/temp.txt | tee /var/spool/cron/crontabs/root
chmod 600 /var/spool/cron/crontabs/root
cron -f