Skip to content
This repository was archived by the owner on Dec 1, 2024. It is now read-only.

funnyzak/alpine-cron-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-alpine-cron

This repository is no longer maintained. The latest built images can be found in the Docker Release.

此仓库已不在维护,最新构建的镜像请查看 Docker Release

Docker Tags Image Size Docker Stars Docker Pulls

cron is a lightweight service that runs in the background and executes scheduled tasks. It builds on the official alpine image and includes dcron as the cron service. The image is available for multiple architectures, including linux/386, linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64/v8, linux/ppc64le, linux/riscv64, linux/s390x.

Environment variables

  • CRON_STRINGS: Strings with cron jobs. Use "\n" for newline (Default: undefined)

  • CRON_TAIL: - If defined cron log file will read to stdout by tail (Default: undefined)

By default cron running in foreground.

Packages

The following packages are installed by default:

  • certificates
  • bash
  • curl
  • wget
  • rsync
  • git
  • gcc
  • openssh
  • make
  • cmake
  • zip
  • unzip
  • gzip
  • certbot
  • bzip2
  • tar
  • tzdata
  • nodejs
  • yarn
  • npm
  • pushoo-cli
  • mysql-client
  • mariadb-connector-c
  • ossutil64

Cron files

  • /etc/cron.d Place to mount custom crontab files

When image will run, files in /etc/cron.d will copied to /var/spool/cron/crontab.

If CRON_STRINGS defined script creates file /var/spool/cron/crontab/CRON_STRINGS

Logs

Log file by default placed in /var/log/cron/cron.log

Notification

The image already installed pushoo-cli, you can use it to send notification. You can send notification to DingTalk, iFttt, Discord, Feishu, atri, bark, etc.

More information about pushoo-cli, please refer to pushoo-cli and pushoo.

Usage

One Cron job

docker run --name="alpine-cron-sample" -d \
-v /path/to/app/conf/crontabs:/etc/cron.d \
-v /path/to/app/scripts:/scripts \
funnyzak/alpine-cron

With scripts and CRON_STRINGS

docker run --name="alpine-cron-sample" -d \
-e 'CRON_STRINGS=* * * * * /scripts/myapp-script.sh'
-v /path/to/app/scripts:/scripts \
funnyzak/alpine-cron

Get URL by cron every minute

docker run --name="alpine-cron-sample" -d \
-e 'CRON_STRINGS=* * * * * wget --spider https://sample.dockerhost/cron-jobs'
funnyzak/alpine-cron

Compose

version: '3'
services:
  acron:
    image: funnyzak/alpine-cron
    privileged: true
    container_name: cron
    logging:
      driver: 'json-file'
      options:
        max-size: '1g'
    tty: true
    environment:
      - TZ=Asia/Shanghai
      - LANG=C.UTF-8
      - CRON_TAIL=1 # tail cron log
      - CRON_STRINGS=* * * * * /scripts/echo.sh
    restart: on-failure
    volumes:
      - ./scripts:/scripts # execute script
      - ./cron:/etc/cron.d # crontab
      - ./db:/db # log

For more details, please refer to the docker-compose.yml file.

Contribution

If you have any questions or suggestions, please feel free to submit an issue or pull request.

License

MIT License © 2022 funnyzak

About

A lightweight Docker image with Cron based on Alpine Linux.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published