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
4 changed files with 34 additions and 87 deletions

View File

@ -23,7 +23,7 @@ ENV TZ=UTC
ENV LOG_LEVEL=9
#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
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 /
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
RUN apk add --no-cache --virtual .jq jq && \
mkdir /app/cronicle && \
#Install Cronicle
RUN mkdir /app/cronicle && \
cd /app/cronicle && \
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 && \
rm -rf Docker* .gitignore Readme.md .vscode sample_conf/examples/backup sample_conf/examples/docker.sh && \
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
rm -rf Docker* .gitignore Readme.md .vscode && \
rm -rf v${CRONICLE_EDGE_VERSION}.tar.gz
WORKDIR /app/cronicle
RUN npm install && \
@ -62,6 +57,5 @@ RUN chmod +x /cronicle-prepare.sh && \
chown -R ${PUID}:${PGID} /app /config
EXPOSE 3012
EXPOSE 3013
ENTRYPOINT [ "/init" ]

View File

@ -92,37 +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.
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
For a single manager behind a reverse proxy, you may need to specify a specific route for the web-socket connections.
An example using nginx:
```
location /socket.io/ {
client_max_body_size 2048m;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:3012/socket.io/;
}
```
Source: https://github.com/jhuckaby/Cronicle/issues/535
Load-balancing between multiple managers, as described [here](https://github.com/jhuckaby/Cronicle/blob/master/docs/Setup.md#load-balancers), has not been tested, and could behave strangely due to docker DNS.
## Ports
|Port |Description|

View File

@ -39,19 +39,6 @@ else
exit 1
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."
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
echo "Checking permissions in /config and /app."
if [ ! "$(stat -c %u /app)" -eq "${PUID}" ] || [ ! "$(stat -c %g /app)" -eq "${PGID}" ]

View File

@ -3,13 +3,34 @@
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 ]
then
echo "Directory /config/cronicle not found. Creating."
mkdir /config/cronicle
fi
#Detecting what mode Cronicle should be started in
@ -27,27 +48,15 @@ then
cp -r /app/cronicle/conf /config/cronicle/conf
rm -rf /app/cronicle/conf
ln -s /config/cronicle/conf /app/cronicle/conf
else
echo "Config dir already exists. Doesn't need creating."
echo "Linking persistent config dir back into Cronicle."
rm -rf /app/cronicle/conf
ln -s /config/cronicle/conf /app/cronicle/conf
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 ]
then
@ -75,34 +84,24 @@ then
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 ]
then
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
rm -rf /config/cronicle/conf/config.json
rm -rf /app/cronicle/conf
ln -s /config/cronicle/conf /app/cronicle/conf
echo ''
echo ''
echo '*************************************'
exit 1
mkdir -p /config/cronicle/conf
exit 0
else
echo "Config is present."
echo "Linking persistent config dir back into Cronicle."
rm -rf /app/cronicle/conf
ln -s /config/cronicle/conf /app/cronicle/conf
#Removing default config.json and linking provided one back into Cronicle
rm -rf /app/cronicle/conf/config.json
ln -s /config/cronicle/conf/config.json /app/cronicle/conf/config.json
fi
else
echo "'$MODE' is not a recognised appion for the MODE environment variable. Accepted options are 'manager' and 'worker'."
exit 1
echo "'$MODE' is not a recognised appion for the MODE environment variable. Accepted appions are 'manager' and 'worker'."
fi
@ -115,12 +114,10 @@ then
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