To run cron jobs on Aptible (or any containerized environment), we recommend using Supercronic, a cron implementation we created specifically to be used with containers.
Here's how you'd get started running cron jobs for your app with Supercronic.
Install Supercronic in your Docker image.
First, add a
crontab to your repository. Here is an example
crontab you might want to adapt or reuse:
# Run every minute */1 * * * * bundle exec rake some:task # Run once every hour @hourly curl -sf example.com >/dev/null && echo 'got example.com!'
For a complete crontab reference, review the documentation from the library Supercronic uses to parse crontabs, cronexpr.
Unless you've specified otherwise with the
TZenvironment variable the schedule for your crontab will be interpeted in UTC.
Then, make sure the
crontab copied in your Docker image, with a directive such as this one:
ADD crontab /app/crontab
The example above grabs a file named
crontabfound at the root of your repository, and copies it under
/appin your image.
Adjust as needed.
Finally, add a new service (if your app already has a Procfile), or deploy a new app altogether to start Supercronic and run your cron jobs:
If you are adding a service, use this
cron: exec supercronic /app/crontab
If you are adding a new app, you can use the same
Procfile declaration, or add a
CMD declaration to your Dockerfile:
CMD ["supercronic", "/app/crontab"]
Updated about 1 year ago