Simple scheduling for short-running Docker containers https://blog.iamthefij.com/2018/11/19/introducing-dockron-scheduling/
Go to file
IamTheFij d1ece2e4e6
continuous-integration/drone/push Build was killed Details
Update drone static builds
2019-08-14 10:04:39 -07:00
.drone.yml Update drone static builds 2019-08-14 10:04:39 -07:00
.gitignore Add multi-arch builds 2019-06-07 16:43:15 -07:00
Dockerfile WIP: Mutli-stage build not working 2019-06-07 17:08:15 -07:00
Dockerfile.multi-stage Fix multi-stage builds 2019-08-09 18:05:17 -07:00
Gopkg.lock Add Makefile and dependency management 2018-08-02 18:55:45 -07:00
Gopkg.toml Add Makefile and dependency management 2018-08-02 18:55:45 -07:00
LICENSE Initial commit 2018-08-01 15:54:55 +00:00
Makefile Fix multi-stage builds 2019-08-09 18:05:17 -07:00
README.md Updated tagline 2018-11-17 13:21:24 -08:00
go.mod WIP: Mutli-stage build not working 2019-06-07 17:08:15 -07:00
go.sum WIP: Mutli-stage build not working 2019-06-07 17:08:15 -07:00
main.go Remove tick log because it's kinda pointless 2018-08-03 17:48:23 -07:00
manifest.tmpl Add multi-arch builds 2019-06-07 16:43:15 -07:00

README.md

Dockron

Simple scheduling for short-running Docker containers

Usage

Dockron requires access to the Docker, so it may need to be run as root, or, if in a Docker container, need the socket mapped as a volume.

Running Dockron

As simple as:

dockron

It will then run in the foreground, periodically checking Docker for containers with labels containing a cron schedule.

By default, Dockron will periodically poll Docker for new containers or schedule changes every minute. You can specify an interval by using the -watch flag.

Scheduling a container

First, be sure your container is something that is not long running and will actually exit when complete. This is for batch runs and not keeping a service running. Docker should be able to do that on it's own with a restart policy.

Create your container and add a label in the form dockron.schedule="* * * * *", where the value is a valid cron expression (See the section Cron Expression Formatting).

Dockron will now start that container peridically on the schedule.

Cron Expression Formatting

For more information on the cron expression parsing, see the docs for robfig/cron.

Caveats

Dockron is quite simple right now. It does not yet:

  • Issue any retries
  • Cancel hanging jobs

I intend to keep it simple as well. It will likely never:

  • Provide any kind of alerting (check out Minitor)
  • Handle job dependencies

Either use a separate tool in conjunction with Dockron, or use a more robust scheduler like Tron, or Chronos.