Sign inSign up

iamthefij/dockron

By iamthefij

•Updated 3 months ago

Simple scheduling for short-running Docker containers

Image
0

5.3K

iamthefij/dockron repository overview

⁠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.

⁠Running with Docker

Dockron is also available as a Docker image. The multi-arch repo can be found at IamTheFij/dockron⁠

From either an amd64, arm, or arm64 machine, you can run Dockron using:

docker run -v /var/run/docker.sock:/var/run/docker.sock:ro iamthefij/dockron -watch
⁠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.

Tag summary

Content type

Image

Digest

sha256:92c9d88dc…

Size

5.1 MB

Last updated

about 2 years ago

docker pull iamthefij/dockron