Home

Awesome

DockJob

Job scheduler with a web UI - designed to run inside a container. I am creating this project to build myself a small light weight job scheduler. I need this because I am building a docker stack and I want to run a scheduler inside the stack to replace the use of cron. My searches for alternatives (https://github.com/jjethwa/rundeck/issues/101) have hit a deadend, so I thought I would put together a simple API based python application.

I put images for this project into the Docker hub

Features

Dockjob Dashboard Screen See more

Getting started - Running DockJob to check it out...

On a machine with docker installed run the following command:

docker run -d -p 80:80 -e APIAPP_APIURL='http://localhost:80/api' -e'APIAPP_APIDOCSURL=http://localhost:80/apidocs' metcarob/dockjob

Visit http://localhost/frontend

In this setup there is no user authentication or https. To run with these see compose examples for information on a more robust way to deploy it and Enviroment Variables for documentation of possible enviroment variables that can be used as settings.

Contributing

If you have any ideas, just open an issue and tell me what you think.

A high level description of the architecture is here.

I have tried to organize the project logically into sub directories and README.md files explain each component:

ComponentLocationDescription
Application./appDockJob Application that runs continuously. This provides a RESTFUL API and executes the Jobs as scheduled, or on receiptof an API call.
Webfrontend./webfrontendWeb application that is run on browsers and will talk to the Application to provide a graphical UI.
Integration tests./integrationtestsSet of tests which test both the Application and Webfrontend
Build Process./dockerImageBuildProcessBash scripts which run all tests (both unit and integration) and then versions and builds the docker image
Compose Examples./composeExamplesThe image is designed to work in a docker swarm with Kong as a reverse proxy to provide security. This directory provides some examples of deploying it.

My release process

At the moment I have a multi stage build so it wasn't possible to use TravisCI to make an automatic build process.

To release dockjob I:

Related projects

Here's a list of other related projects: