63 Commits

Author SHA1 Message Date
a515ba8eed Merge pull request '1.0.5' (#11) from develop into main
Reviewed-on: #11
2024-05-05 17:15:49 +00:00
08c76e9509 Merge branch 'main' into develop 2024-05-05 17:11:35 +00:00
57e2cce893 Ignore outcome of chown /app & /config 2024-05-05 16:27:40 +00:00
ab7dc07dea Merge pull request '1.0.4' (#8) from develop into main
Reviewed-on: #8
2023-08-02 11:45:34 +00:00
90aaf388cb tweak worker first run config logic 2023-07-21 10:50:30 +00:00
8803076ab5 better permission detection 2023-07-21 10:50:05 +00:00
bc5c00e1da fix init folder permissions on creation 2023-07-21 10:44:01 +00:00
126746669a fix not running multiple scripts in /config/init 2023-07-21 10:11:17 +00:00
3069d5c7f9 fix /config/init permissions 2023-07-20 11:39:23 +00:00
ec1a1d9383 remove init scripts from cronicle-prepare.sh 2023-07-16 16:56:46 +00:00
156e0afe5c run init scripts as root 2023-07-16 16:55:34 +00:00
24c9e13e72 remove sample config keys 2023-07-08 19:29:04 +00:00
1f21d711ca add ca-certificates package 2023-07-08 16:29:40 +00:00
a5bb818120 change linking of config in worker mode 2023-07-08 16:12:13 +00:00
b2a8147027 tidy up more files 2023-07-08 16:11:55 +00:00
76f6812a7d add ssl compatibility 2023-07-03 22:46:41 +00:00
bcbdf2ee76 Merge pull request 'add reverse-proxy details' (#7) from develop into main [CI SKIP]
Reviewed-on: #7
2023-06-26 20:12:28 +00:00
21aafd4ee5 add reverse-proxy details [CI SKIP] 2023-06-26 20:11:19 +00:00
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
4 changed files with 49 additions and 44 deletions

View File

@ -23,7 +23,7 @@ ENV TZ=UTC
ENV LOG_LEVEL=9 ENV LOG_LEVEL=9
#Get required packages #Get required packages
RUN apk update && apk add tzdata curl shadow bash xz git procps nodejs npm nano openssl RUN apk update && apk add --no-cache tzdata curl shadow bash xz git procps nodejs npm nano openssl ca-certificates
#Make folders #Make folders
RUN mkdir /config && \ RUN mkdir /config && \
@ -39,13 +39,18 @@ RUN curl -fsSL "https://github.com/just-containers/s6-overlay/releases/download/
curl -fsSL "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz" | tar Jpxf - -C / curl -fsSL "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz" | tar Jpxf - -C /
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2 S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 S6_VERBOSITY=1 ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2 S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 S6_VERBOSITY=1
#Install Cronicle #Install Cronicle & tidy up things I don't want
RUN mkdir /app/cronicle && \ RUN apk add --no-cache --virtual .jq jq && \
mkdir /app/cronicle && \
cd /app/cronicle && \ cd /app/cronicle && \
wget https://github.com/cronicle-edge/cronicle-edge/archive/refs/tags/v${CRONICLE_EDGE_VERSION}.tar.gz && \ wget https://github.com/cronicle-edge/cronicle-edge/archive/refs/tags/v${CRONICLE_EDGE_VERSION}.tar.gz && \
tar -xf v${CRONICLE_EDGE_VERSION}.tar.gz --strip-components 1 && \ tar -xf v${CRONICLE_EDGE_VERSION}.tar.gz --strip-components 1 && \
rm -rf Docker* .gitignore Readme.md .vscode && \ rm -rf Docker* .gitignore Readme.md .vscode sample_conf/examples/backup sample_conf/examples/docker.sh && \
rm -rf v${CRONICLE_EDGE_VERSION}.tar.gz jq 'del(.storage[] | select(contains(["global/conf_keys"])))' sample_conf/setup.json >> sample_conf/setup-new.json && \
rm sample_conf/setup.json && \
mv sample_conf/setup-new.json sample_conf/setup.json && \
rm -rf v${CRONICLE_EDGE_VERSION}.tar.gz && \
apk del .jq
WORKDIR /app/cronicle WORKDIR /app/cronicle
RUN npm install && \ RUN npm install && \

View File

@ -92,6 +92,8 @@ services:
This container automatically checks for scripts in `/config/init` and runs them at startup. This could be useful if you need to install additional applications into a worker container so it can execute jobs. This container automatically checks for scripts in `/config/init` and runs them at startup. This could be useful if you need to install additional applications into a worker container so it can execute jobs.
Note that any scripts will be run as `root` before permissions are altered in `/app` and `/config`. Anything that an init script does in either of these folders will be owned by `cronicle` when the container continues.
## Reverse Proxying ## Reverse Proxying
For a single manager behind a reverse proxy, you may need to specify a specific route for the web-socket connections. For a single manager behind a reverse proxy, you may need to specify a specific route for the web-socket connections.

View File

@ -39,16 +39,31 @@ else
exit 1 exit 1
fi fi
#Importing and running additional scripts placed in /config/init
if [ -d /config/init ]; then
if [ "$(ls -A /config/init)" ]; then
echo "Running additional startup scripts."
for f in /config/init/*.sh; do
bash "$f"
done
else
echo "/config/init is empty - no additional startup scripts detected."
fi
else
echo "Directory /config/init not found. Creating."
mkdir /config/init && chown -R cronicle:cronicle /config/init
fi
echo "Checking permissions in /config and /app." echo "Checking permissions in /config and /app."
if [ ! "$(stat -c %u /app)" -eq "${PUID}" ] || [ ! "$(stat -c %g /app)" -eq "${PGID}" ] if [ -n "$(find /app \! -user ${PUID})" ] || [ -n "$(find /app \! -group ${PGID})" ]
then then
echo "Fixing permissions for /app (this can take some time)." echo "Fixing permissions for /app (this can take some time)."
chown -R cronicle:cronicle /app chown -R cronicle:cronicle /app || true
fi fi
if [ ! "$(stat -c %u /config)" -eq "${PUID}" ] || [ ! "$(stat -c %g /config)" -eq "${PGID}" ] if [ -n "$(find /config \! -user ${PUID})" ] || [ -n "$(find /config \! -group ${PGID})" ]
then then
echo "Fixing permissions for /config (this can take some time)." echo "Fixing permissions for /config (this can take some time)."
chown -R cronicle:cronicle /config chown -R cronicle:cronicle /config || true
fi fi

View File

@ -3,29 +3,6 @@
echo "Preparing Cronicle" echo "Preparing Cronicle"
#Importing and running additional scripts placed in /config/init
if [ -d /config/init ]
then
if [ "$(ls -A /config/init)" ]
then
echo "Running additional startup scripts."
bash /config/init/*
else
echo "/config/init is empty - no additional startup scripts detected."
fi
else
echo "Directory /config/init not found. Creating."
mkdir /config/init
fi
if [ ! -d /config/cronicle ] if [ ! -d /config/cronicle ]
then then
@ -98,26 +75,32 @@ then
echo "Cronicle is running in 'worker' mode." echo "Cronicle is running in 'worker' mode."
#Copying config directory to /config/cronicle/conf if not already there, then linking back into Cronicle
if [ ! -f /config/cronicle/conf/config.json ] if [ ! -f /config/cronicle/conf/config.json ]
then then
echo "No config found. Copy config.json from the manager server and place it in /config/cronicle/conf dir." echo "No config found. Copy config.json from the manager server and place it in /config/cronicle/conf dir."
echo "Don't forget to also copy the SSL certs if you're using SSL." cp -R /app/cronicle/conf /config/cronicle/conf
rm -rf /config/cronicle/conf/config.json
mkdir -p /config/cronicle/conf echo ''
exit 0 echo ''
echo '*************************************'
exit 1
else else
#Removing default config.json and linking provided one back into Cronicle echo "Config is present."
rm -rf /app/cronicle/conf/config.json echo "Linking persistent config dir back into Cronicle."
ln -s /config/cronicle/conf/config.json /app/cronicle/conf/config.json
rm -rf /app/cronicle/conf
ln -s /config/cronicle/conf /app/cronicle/conf
fi fi
else 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 options are 'manager' and 'worker'."
exit 1
fi fi