45 Commits

Author SHA1 Message Date
06c1bba849 Merge pull request 'update to cronicle-edge 1.6.3' (#6) from develop into main
Reviewed-on: #6
2023-06-25 13:33:44 +00:00
79db8733c5 add period to cronicle-edge version 2023-06-25 13:28:58 +00:00
882f1faa37 update to cronicle-edge 1.6.3 2023-06-25 13:25:25 +00:00
0b89350609 add new pipeline for better building [CI SKIP] 2023-06-05 21:52:50 +00:00
3c122e9f0b Merge pull request 'typo correction on readme [CI SKIP]' (#5) from develop into main [CI SKIP]
Reviewed-on: #5
2023-06-05 21:19:16 +00:00
dc6dbf5b64 typo correction on readme [CI SKIP] 2023-06-05 21:18:31 +00:00
cef257c56a Merge pull request 'fix drone release build dependency graph' (#4) from develop into main
Reviewed-on: #4
2023-06-05 21:09:47 +00:00
c31d8f79fa fix drone release build dependency graph 2023-06-05 21:04:42 +00:00
0cf6864d20 Merge pull request '1.0.2' (#3) from develop into main
Reviewed-on: #3
2023-06-05 20:50:04 +00:00
4270518bd5 update readme [CI SKIP] 2023-06-05 20:49:35 +00:00
208296bab2 fix drone dependency graph 2023-06-05 20:43:23 +00:00
2de4cd5da6 drone build and public to ghcr also 2023-06-05 20:43:23 +00:00
b7c5fee65f expose log dir to /config volume 2023-06-05 20:43:23 +00:00
3d9d4b4333 add cronicle info to readme [CI SKIP] 2023-06-05 20:43:23 +00:00
6fdfa75adb add LOG_LEVEL env var 2023-06-05 20:43:23 +00:00
92f41ce321 update readme [CI SKIP] 2023-06-05 20:43:23 +00:00
6342e0bf32 add nano, change editor to it 2023-06-05 20:43:23 +00:00
9cf5b3e39c Merge pull request '1.0.1' (#2) from develop into main
Reviewed-on: #2
2023-05-27 22:10:46 +00:00
363169e636 cleanup misc files in app dir 2023-05-27 22:05:58 +00:00
877e98eff7 set permissions to 1000 at build 2023-05-27 21:58:31 +00:00
90910f9fdf fix to defined cronicle version 2023-05-27 21:53:40 +00:00
1089abc2cb rename user to cronicle 2023-05-27 18:46:23 +00:00
b932a8d2f1 fix not hooking conf in if already setup 2023-05-27 18:15:12 +00:00
52332d7e22 get correct s6 for architecture 2023-05-27 17:49:19 +00:00
96bdd83385 Merge pull request '1.0.0' (#1) from develop into main
Reviewed-on: #1
2023-05-27 16:53:07 +00:00
7d94621192 tweak build behaviour [CI SKIP] 2023-05-27 16:49:13 +00:00
b5d80d90a0 updated readme [CI SKIP] 2023-05-27 16:46:47 +00:00
06f5e5d27a add .gitignore [CI SKIP] 2023-05-27 15:37:58 +00:00
3f239e2527 redesign around s6-overlay 2023-05-27 13:43:46 +00:00
056748f20c update readme [CI SKIP] 2023-05-27 13:42:38 +00:00
d4846a0ccf add goreleaser [CI SKIP] 2023-05-27 13:40:53 +00:00
52460f8741 update drone behaviour [CI SKIP] 2023-05-27 13:40:44 +00:00
d1c1cfd46f create cronicle user at build 2022-12-29 23:49:45 +00:00
bfd684f06f Merge branch 'main' of https://git.mrmeeb.stream/MrMeeb/cronicle-docker 2022-12-29 20:36:16 +00:00
c6007e71f8 logic fixes 2022-12-29 20:36:15 +00:00
4485b53801 Update '.drone.yml' 2022-12-29 19:41:42 +00:00
0f96656929 Update '.drone.yml' 2022-12-29 19:03:26 +00:00
74a1e3f206 drone notify on failure 2022-12-29 17:51:38 +00:00
a611ceff70 Add logic to detect if config is missing as worker 2022-12-29 17:46:57 +00:00
7f98dc08ce Update '.drone.yml' 2022-12-27 11:48:39 +00:00
8cc55e3bf8 Merge branch 'main' of https://git.mrmeeb.stream/MrMeeb/cronicle-docker 2022-12-27 11:44:58 +00:00
6c6395097f add drone, add logic for init scripts 2022-12-27 11:44:51 +00:00
821dbf140c Update 'README.md' 2022-12-26 22:31:41 +00:00
22f4727800 more dev 2022-12-26 22:30:42 +00:00
113839c359 first commit 2022-12-26 18:21:10 +00:00
7 changed files with 213 additions and 34 deletions

View File

@ -1,12 +1,11 @@
kind: pipeline kind: pipeline
type: docker type: docker
name: build-main-images name: build-release-images
trigger: trigger:
event: event:
exclude: exclude:
- pull_request - pull_request
ref: ref:
- refs/heads/main
- refs/tags/** - refs/tags/**
platform: platform:
@ -19,29 +18,17 @@ steps:
image: docker:git image: docker:git
commands: commands:
- git fetch --tags - git fetch --tags
when: depends_on:
ref: - clone
- refs/tags/**
# Set tags for main branch
- name: make-tags - name: make-tags
image: node
commands:
- echo -n "${DRONE_COMMIT_SHA:0:8}, latest" > .tags
when:
ref:
- refs/heads/main
- name: make-tags-release
image: node image: node
commands: commands:
- echo -n "${DRONE_TAG}, latest" > .tags - echo -n "${DRONE_TAG}, latest" > .tags
when: depends_on:
ref: - get-tags
- refs/tags/**
# Build containers from main branch - name: build-gitea
- name: build
image: thegeeklab/drone-docker-buildx image: thegeeklab/drone-docker-buildx
privileged: true privileged: true
settings: settings:
@ -55,17 +42,45 @@ steps:
platforms: platforms:
- linux/arm64 - linux/arm64
- linux/amd64 - linux/amd64
depends_on:
- make-tags
- name: release - name: build-github
image: thegeeklab/drone-docker-buildx
privileged: true
settings:
provenance: false
registry: ghcr.io
username:
from_secret: docker_username
password:
from_secret: github_token
repo: ghcr.io/mrmeeb/cronicle
platforms:
- linux/arm64
- linux/amd64
depends_on:
- make-tags
- name: release-gitea
image: goreleaser/goreleaser image: goreleaser/goreleaser
environment: environment:
GITEA_TOKEN: GITEA_TOKEN:
from_secret: gitea_token from_secret: gitea_token
commands: commands:
- goreleaser release - goreleaser release -f .goreleaser-gitea.yaml
when: depends_on:
ref: - build-gitea
- refs/tags/**
- name: release-github
image: goreleaser/goreleaser
environment:
GITHUB_TOKEN:
from_secret: github_token
commands:
- goreleaser release -f .goreleaser-github.yaml
depends_on:
- build-github
- name: notify - name: notify
image: plugins/slack image: plugins/slack
@ -76,6 +91,83 @@ steps:
settings: settings:
webhook: webhook:
from_secret: slack_webhook from_secret: slack_webhook
depends_on:
- release-gitea
- release-github
---
kind: pipeline
type: docker
name: build-main-images
trigger:
event:
exclude:
- pull_request
ref:
- refs/heads/main
platform:
os: linux
arch: amd64
steps:
- name: make-tags
image: node
commands:
- echo -n "${DRONE_COMMIT_SHA:0:8}, latest" > .tags
when:
ref:
- refs/heads/main
depends_on:
- clone
- name: build-gitea
image: thegeeklab/drone-docker-buildx
privileged: true
settings:
provenance: false
registry: git.mrmeeb.stream
username:
from_secret: docker_username
password:
from_secret: docker_password
repo: git.mrmeeb.stream/mrmeeb/cronicle
platforms:
- linux/arm64
- linux/amd64
depends_on:
- make-tags
- name: build-github
image: thegeeklab/drone-docker-buildx
privileged: true
settings:
provenance: false
registry: ghcr.io
username:
from_secret: docker_username
password:
from_secret: github_token
repo: ghcr.io/mrmeeb/cronicle
platforms:
- linux/arm64
- linux/amd64
depends_on:
- make-tags
- name: notify
image: plugins/slack
when:
status:
- success
- failure
settings:
webhook:
from_secret: slack_webhook
depends_on:
- build-github
- build-gitea
--- ---
kind: pipeline kind: pipeline
@ -100,7 +192,7 @@ steps:
- echo -n "develop-${DRONE_COMMIT_SHA:0:8}, develop" > .tags - echo -n "develop-${DRONE_COMMIT_SHA:0:8}, develop" > .tags
# Build containers from develop branch # Build containers from develop branch
- name: build - name: build-gitea
image: thegeeklab/drone-docker-buildx image: thegeeklab/drone-docker-buildx
privileged: true privileged: true
settings: settings:
@ -114,6 +206,25 @@ steps:
platforms: platforms:
- linux/arm64 - linux/arm64
- linux/amd64 - linux/amd64
depends_on:
- make-tags
- name: build-github
image: thegeeklab/drone-docker-buildx
privileged: true
settings:
provenance: false
registry: ghcr.io
username:
from_secret: docker_username
password:
from_secret: github_token
repo: ghcr.io/mrmeeb/cronicle
platforms:
- linux/arm64
- linux/amd64
depends_on:
- make-tags
- name: notify - name: notify
image: plugins/slack image: plugins/slack
@ -123,4 +234,7 @@ steps:
- failure - failure
settings: settings:
webhook: webhook:
from_secret: slack_webhook from_secret: slack_webhook
depends_on:
- build-gitea
- build-github

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
dist/ dist-gitea/
dist-github/
.tags .tags

View File

@ -1,3 +1,5 @@
dist: dist-gitea
build: build:
skip: true skip: true

20
.goreleaser-github.yaml Normal file
View File

@ -0,0 +1,20 @@
dist: dist-github
build:
skip: true
archives:
- format: binary
release:
draft: true
github:
owner: MrMeeb
name: cronicle-docker
changelog:
sort: asc
filters:
exclude:
- '^docs:'
- '^test:'

View File

@ -10,7 +10,7 @@ ENV S6_OVERLAY_ARCH=aarch64
FROM base-${TARGETARCH}${TARGETVARIANT} FROM base-${TARGETARCH}${TARGETVARIANT}
ARG S6_OVERLAY_VERSION=3.1.5.0 ARG S6_OVERLAY_VERSION=3.1.5.0
ARG CRONICLE_EDGE_VERSION=1.6.2 ARG CRONICLE_EDGE_VERSION=.1.6.3
ENV CRONICLE_foreground=1 ENV CRONICLE_foreground=1
ENV CRONICLE_echo=1 ENV CRONICLE_echo=1

View File

@ -1,17 +1,41 @@
# Cronicle Docker # Cronicle Docker
![Drone (self-hosted) with branch](https://img.shields.io/drone/build/MrMeeb/cronicle-docker/main?label=main&server=https%3A%2F%2Fdrone.mrmeeb.stream&style=for-the-badge) ![Drone (self-hosted) with branch](https://img.shields.io/drone/build/MrMeeb/cronicle-docker/develop?label=develop&server=https%3A%2F%2Fdrone.mrmeeb.stream&style=for-the-badge) ![Drone (self-hosted) with branch](https://img.shields.io/drone/build/MrMeeb/cronicle-docker/main?label=latest&server=https%3A%2F%2Fdrone.mrmeeb.stream&style=for-the-badge) ![Drone (self-hosted) with branch](https://img.shields.io/drone/build/MrMeeb/cronicle-docker/develop?label=develop&server=https%3A%2F%2Fdrone.mrmeeb.stream&style=for-the-badge)
Dockerised Cronicle, based on the [Cronicle-Edge](https://github.com/cronicle-edge/cronicle-edge) fork. Dockerised Cronicle, based on the [Cronicle-Edge](https://github.com/cronicle-edge/cronicle-edge) fork of [Cronicle](https://github.com/jhuckaby/Cronicle). This container was built to include features I value in containers, namely logging to `stdout` and configurable `PUID` and `PGID`.
Can function in both the **manager** and **worker** role. This container can function in both the **manager** and **worker** role.
*This repo is mirrored to GitHub*
## Links ## Links
- :tea: [Gitea Repo (source)](https://git.mrmeeb.stream/MrMeeb/cronicle-docker) - :tea: [Gitea Repo (source)](https://git.mrmeeb.stream/MrMeeb/cronicle-docker)
- :whale2: [Containers](https://git.mrmeeb.stream/MrMeeb/-/packages/container/cronicle/latest) - since I'm currently not also publishing them to ghcr.io - :whale2: [Containers](https://git.mrmeeb.stream/MrMeeb/-/packages/container/cronicle/latest) (also published to GHCR)
- :mirror: [GitHub mirror](https://github.com/MrMeeb/cronicle-docker) - :mirror: [GitHub mirror](https://github.com/MrMeeb/cronicle-docker)
- :package: [Cronicle Repo](https://github.com/jhuckaby/Cronicle)
- :package: [Cronicle-Edge Repo](https://github.com/cronicle-edge/cronicle-edge)
*This repo is mirrored to GitHub*
## Overview
[**Cronicle**](https://github.com/jhuckaby/Cronicle) is a multi-server task scheduler and runner, with a web based front-end UI. It handles both scheduled, repeating and on-demand jobs, targeting any number of worker servers, with real-time stats and live log viewer. It's basically a fancy [Cron](https://en.wikipedia.org/wiki/Cron) replacement written in [Node.js](https://nodejs.org/). You can give it simple shell commands, or write Plugins in virtually any language.
![Main Screenshot](https://pixlcore.com/software/cronicle/screenshots-new/job-details-complete.png)
## Features at a Glance
* Single or multi-server setup.
* Automated failover to backup servers.
* Auto-discovery of nearby servers.
* Real-time job status with live log viewer.
* Plugins can be written in any language.
* Schedule events in multiple timezones.
* Optionally queue up long-running events.
* Track CPU and memory usage for each job.
* Historical stats with performance graphs.
* Simple JSON messaging system for Plugins.
* Web hooks for external notification systems.
* Simple REST API for scheduling and running events.
* API Keys for authenticating remote apps.
## Tags ## Tags

View File

@ -103,4 +103,22 @@ else
echo "'$MODE' is not a recognised appion for the MODE environment variable. Accepted appions are 'manager' and 'worker'." echo "'$MODE' is not a recognised appion for the MODE environment variable. Accepted appions are 'manager' and 'worker'."
fi
#Expose log directory
if [ ! -d /config/cronicle/logs ]
then
echo "Logs dir is missing, creating."
cp -r /app/cronicle/logs /config/cronicle/logs
rm -rf /app/cronicle/logs
ln -s /config/cronicle/logs /app/cronicle/logs
else
echo "Logs dir already exists. Doesn't need creating."
echo "Linking persistent logs dir back into Cronicle."
rm -rf /app/cronicle/logs
ln -s /config/cronicle/logs /app/cronicle/logs
fi fi