47 Commits

Author SHA1 Message Date
a123d0fecd 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
1286d2053a add reverse-proxy details [CI SKIP] 2023-06-26 20:11:19 +00:00
1a9addf796 Merge pull request 'update to cronicle-edge 1.6.3' (#6) from develop into main
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #6
2023-06-25 13:33:44 +00:00
4019df3cce add period to cronicle-edge version
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-25 13:28:58 +00:00
0774624fbc update to cronicle-edge 1.6.3
Some checks failed
continuous-integration/drone/push Build is failing
2023-06-25 13:25:25 +00:00
8c21c43bfd add new pipeline for better building [CI SKIP] 2023-06-05 21:52:50 +00:00
504aa38362 Merge pull request 'typo correction on readme [CI SKIP]' (#5) from develop into main [CI SKIP]
All checks were successful
continuous-integration/drone/tag Build is passing
Reviewed-on: #5
2023-06-05 21:19:16 +00:00
5fcb0c0e08 typo correction on readme [CI SKIP] 2023-06-05 21:18:31 +00:00
aace951501 Merge pull request 'fix drone release build dependency graph' (#4) from develop into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #4
2023-06-05 21:09:47 +00:00
193f104408 fix drone release build dependency graph
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-05 21:04:42 +00:00
c4e8faff3b Merge pull request '1.0.2' (#3) from develop into main
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: #3
2023-06-05 20:50:04 +00:00
0080d188ab update readme [CI SKIP] 2023-06-05 20:49:35 +00:00
eefaba12cb fix drone dependency graph
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-05 20:43:23 +00:00
114c87fefe drone build and public to ghcr also 2023-06-05 20:43:23 +00:00
a8eb04c76b expose log dir to /config volume 2023-06-05 20:43:23 +00:00
debd509868 add cronicle info to readme [CI SKIP] 2023-06-05 20:43:23 +00:00
e8d9f7c8cd add LOG_LEVEL env var 2023-06-05 20:43:23 +00:00
98ab91f73f update readme [CI SKIP] 2023-06-05 20:43:23 +00:00
694ba8f5ce add nano, change editor to it 2023-06-05 20:43:23 +00:00
c232595f36 Merge pull request '1.0.1' (#2) from develop into main
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #2
2023-05-27 22:10:46 +00:00
6ac07ec9a0 cleanup misc files in app dir
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 22:05:58 +00:00
ab73132553 set permissions to 1000 at build
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 21:58:31 +00:00
76cdb2640e fix to defined cronicle version 2023-05-27 21:53:40 +00:00
f1f322d58a rename user to cronicle 2023-05-27 18:46:23 +00:00
bfbc0e22d7 fix not hooking conf in if already setup
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 18:15:12 +00:00
f3dc829111 get correct s6 for architecture
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 17:49:19 +00:00
9c3caf751e Merge pull request '1.0.0' (#1) from develop into main
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #1
2023-05-27 16:53:07 +00:00
1ac78908ad tweak build behaviour [CI SKIP] 2023-05-27 16:49:13 +00:00
f990871798 updated readme [CI SKIP] 2023-05-27 16:46:47 +00:00
2ecac58414 add .gitignore [CI SKIP] 2023-05-27 15:37:58 +00:00
613393f328 redesign around s6-overlay
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 13:43:46 +00:00
30026b4e17 update readme [CI SKIP] 2023-05-27 13:42:38 +00:00
580845afe0 add goreleaser [CI SKIP] 2023-05-27 13:40:53 +00:00
d4aa8ff410 update drone behaviour [CI SKIP] 2023-05-27 13:40:44 +00:00
b3436f3b2c create cronicle user at build
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-29 23:49:45 +00:00
4541df4c8a Merge branch 'main' of https://git.mrmeeb.stream/MrMeeb/cronicle-docker
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-29 20:36:16 +00:00
26c3a15c81 logic fixes 2022-12-29 20:36:15 +00:00
e10acf4e46 Update '.drone.yml'
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-29 19:41:42 +00:00
2d8fb52b23 Update '.drone.yml'
Some checks failed
continuous-integration/drone/push Build is failing
2022-12-29 19:03:26 +00:00
511704a90f drone notify on failure
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-12-29 17:51:38 +00:00
70d6215ca3 Add logic to detect if config is missing as worker
Some checks failed
continuous-integration/drone/push Build is failing
2022-12-29 17:46:57 +00:00
d759db2bb0 Update '.drone.yml'
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-27 11:48:39 +00:00
c04d6febad Merge branch 'main' of https://git.mrmeeb.stream/MrMeeb/cronicle-docker
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-12-27 11:44:58 +00:00
cad9b48ab9 add drone, add logic for init scripts 2022-12-27 11:44:51 +00:00
327208391b Update 'README.md' 2022-12-26 22:31:41 +00:00
ee7034cba3 more dev 2022-12-26 22:30:42 +00:00
78f681fb41 first commit 2022-12-26 18:21:10 +00:00
4 changed files with 36 additions and 60 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 --no-cache tzdata curl shadow bash xz git procps nodejs npm nano openssl ca-certificates RUN apk update && apk add tzdata curl shadow bash xz git procps nodejs npm nano
#Make folders #Make folders
RUN mkdir /config && \ RUN mkdir /config && \
@ -39,18 +39,13 @@ 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 & tidy up things I don't want #Install Cronicle
RUN apk add --no-cache --virtual .jq jq && \ RUN mkdir /app/cronicle && \
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 sample_conf/examples/backup sample_conf/examples/docker.sh && \ rm -rf Docker* .gitignore Readme.md .vscode && \
jq 'del(.storage[] | select(contains(["global/conf_keys"])))' sample_conf/setup.json >> sample_conf/setup-new.json && \ rm -rf v${CRONICLE_EDGE_VERSION}.tar.gz
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 && \
@ -62,6 +57,5 @@ RUN chmod +x /cronicle-prepare.sh && \
chown -R ${PUID}:${PGID} /app /config chown -R ${PUID}:${PGID} /app /config
EXPOSE 3012 EXPOSE 3012
EXPOSE 3013
ENTRYPOINT [ "/init" ] ENTRYPOINT [ "/init" ]

View File

@ -92,8 +92,6 @@ 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,30 +39,15 @@ 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 [ -n "$(find /app \! -user ${PUID})" ] || [ -n "$(find /app \! -group ${PGID})" ] if [ ! "$(stat -c %u /app)" -eq "${PUID}" ] || [ ! "$(stat -c %g /app)" -eq "${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
fi fi
if [ -n "$(find /config \! -user ${PUID})" ] || [ -n "$(find /config \! -group ${PGID})" ] if [ ! "$(stat -c %u /config)" -eq "${PUID}" ] || [ ! "$(stat -c %g /config)" -eq "${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

View File

@ -3,13 +3,34 @@
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
echo "Directory /config/cronicle not found. Creating." echo "Directory /config/cronicle not found. Creating."
mkdir /config/cronicle mkdir /config/cronicle
fi fi
#Detecting what mode Cronicle should be started in #Detecting what mode Cronicle should be started in
@ -27,27 +48,15 @@ then
cp -r /app/cronicle/conf /config/cronicle/conf cp -r /app/cronicle/conf /config/cronicle/conf
rm -rf /app/cronicle/conf rm -rf /app/cronicle/conf
ln -s /config/cronicle/conf /app/cronicle/conf ln -s /config/cronicle/conf /app/cronicle/conf
else else
echo "Config dir already exists. Doesn't need creating." echo "Config dir already exists. Doesn't need creating."
echo "Linking persistent config dir back into Cronicle." echo "Linking persistent config dir back into Cronicle."
rm -rf /app/cronicle/conf rm -rf /app/cronicle/conf
ln -s /config/cronicle/conf /app/cronicle/conf ln -s /config/cronicle/conf /app/cronicle/conf
fi fi
if [ ! -f /config/cronicle/conf/ssl.crt ] || [ ! -f /config/cronicle/conf/ssl.key ]
then
echo "One or both SSL components are missing. Generating."
rm -f /config/cronicle/conf/ssl.crt /config/cronicle/conf/ssl.key
openssl req -x509 -newkey rsa:4096 -keyout /config/cronicle/conf/ssl.key -out /config/cronicle/conf/ssl.crt -sha256 -days 3650 -nodes -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=CommonNameOrHostname"
fi
if [ ! -f /config/cronicle/data/.setup_done ] if [ ! -f /config/cronicle/data/.setup_done ]
then then
@ -75,32 +84,24 @@ 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."
cp -R /app/cronicle/conf /config/cronicle/conf mkdir -p /config/cronicle/conf
rm -rf /config/cronicle/conf/config.json exit 0
echo ''
echo ''
echo '*************************************'
exit 1
else else
echo "Config is present." #Removing default config.json and linking provided one back into Cronicle
echo "Linking persistent config dir back into Cronicle." rm -rf /app/cronicle/conf/config.json
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 options are 'manager' and 'worker'." echo "'$MODE' is not a recognised appion for the MODE environment variable. Accepted appions are 'manager' and 'worker'."
exit 1
fi fi
@ -113,12 +114,10 @@ then
cp -r /app/cronicle/logs /config/cronicle/logs cp -r /app/cronicle/logs /config/cronicle/logs
rm -rf /app/cronicle/logs rm -rf /app/cronicle/logs
ln -s /config/cronicle/logs /app/cronicle/logs ln -s /config/cronicle/logs /app/cronicle/logs
else else
echo "Logs dir already exists. Doesn't need creating." echo "Logs dir already exists. Doesn't need creating."
echo "Linking persistent logs dir back into Cronicle." echo "Linking persistent logs dir back into Cronicle."
rm -rf /app/cronicle/logs rm -rf /app/cronicle/logs
ln -s /config/cronicle/logs /app/cronicle/logs ln -s /config/cronicle/logs /app/cronicle/logs