This docker image is used as base image for all homecentr images which require a cron scheduler but can also be used on its own. The image executes a mounted script at the specified schedule and reports the results into a Prometheus push-gateway for easy monitoring and alerting.
version: "3.7"
services:
cron-base:
build: .
image: homecentr/cron-base
restart: unless-stopped
environment:
CRON_SCHEDULE: "* * * * *" # Run script every minute
PUSH_GATEWAY_URL: "http://push_gateway:9091/metrics/job/cron/label-name/label-value"
volumes:
- ./example/success:/cron # must contain cron-tick script
Name | Default value | Description |
---|---|---|
PUID | 7077 | UID of the user the cron-tick script should be running as. |
PGID | 7077 | GID of the group the cron-tick script should be running as. |
CRON_SCHEDULE | Cron expression which defines when/how often the script will be executed. This variable is mandatory. | |
PUSH_GATEWAY_URL | URL of the push gateway job where the metrics should be reported. The reporting is skipped if the variable is not set. |
The image does not expose any ports.
Container path | Description |
---|---|
/cron | Directory containing the script which should be executed, the script must be named cron-tick . |
The container is regularly scanned for vulnerabilities and updated. Further info can be found in the Security tab.
The container supports privilege drop. Even though the container starts as root, it will use the permissions only to perform the initial set up. The cron-tick script is executed as UID/GID provided in the PUID and PGID environment variables.
user
Docker compose property or using the --user
argument. This would break the privilege drop logic.