Sign inSign up

agjini/crooner

By agjini

Updated 8 months ago

Official docker image for the crooner rust cron utility tool

Image
Languages & frameworks
Developer tools
Databases & storage
0

3.8K

agjini/crooner repository overview

Go to github project to see full documentation agjini/crooner.

Crooner is a small utility written in Rust that allows scheduling Docker commands to be executed on containers (typically to perform database dumps within a Docker Compose setup).

Features

  • Execute commands in Docker containers via Docker API
  • Standard cron expressions with second precision
  • Optional run-on-startup for immediate execution
  • Capture and save command output to files
  • Structured logging with tracing
  • Secure non-root execution

Quick Start

Docker Compose example
services:
  crooner:
    image: agjini/crooner:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./config.toml:/app/config.toml:ro
      - ./backup:/backup
    restart: unless-stopped
Configuration

Create a config.toml file:

[[jobs]]
name = "PostgreSQL Backup"
at = "0 0 2 * * *"  # Every day at 2:00 AM
container = "postgres-container"
command = ["pg_dump", "-U", "postgres", "mydb"]
output_file = "/backup/postgres_backup.sql"
run_on_startup = true
Job Fields
  • name: Job identifier (string)
  • at: Cron expression (format: second minute hour day month weekday)
  • container: Target container name (string)
  • command: Command to execute (array of strings)
  • output_file: Optional output file path (string)
  • run_on_startup: Execute immediately on startup (boolean, default: false)
Cron Expression Format
┌───────────── second (0-59)
│ ┌─────────── minute (0-59)
│ │ ┌───────── hour (0-23)
│ │ │ ┌─────── day (1-31)
│ │ │ │ ┌───── month (1-12)
│ │ │ │ │ ┌─── weekday (0-6, 0=Sunday)
│ │ │ │ │ │
* * * * * *

Examples:

  • 0 0 2 * * * - Every day at 2:00 AM
  • 0 */15 * * * * - Every 15 minutes
  • 0 0 0 1 * * - First day of every month at midnight

Logging

Control log level with RUST_LOG environment variable:

environment:
  - RUST_LOG=info  # info (default), debug, trace

Use Cases

  • Database backups (PostgreSQL, MySQL, MongoDB)
  • Cleanup and maintenance tasks
  • Data exports and archiving
  • Health checks and monitoring

License

MIT

Tag summary

Content type

Image

Digest

sha256:cdfb03e91

Size

32.9 MB

Last updated

8 months ago

docker pull agjini/crooner