Skip to content

Commit 4f9146b

Browse files
author
Omar Ahmad
committed
using tini, functions for most code in entrypoint
1 parent 4a0d85f commit 4f9146b

File tree

2 files changed

+29
-23
lines changed

2 files changed

+29
-23
lines changed

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
FROM library/docker:stable
22

33
ENV HOME_DIR=/opt/crontab
4-
RUN apk add --no-cache --virtual .run-deps gettext bash py3-toml py3-yaml python3 jq \
4+
RUN apk add --no-cache --virtual .run-deps gettext bash py3-toml py3-yaml python3 jq tini \
55
&& mkdir -p ${HOME_DIR}/jobs ${HOME_DIR}/projects \
66
&& adduser -S docker -D
77

88
COPY docker-entrypoint /
9-
ENTRYPOINT ["/docker-entrypoint"]
9+
ENTRYPOINT ["/sbin/tini", "--", "/docker-entrypoint"]
1010

1111
HEALTHCHECK --interval=5s --timeout=3s \
1212
CMD ps aux | grep '[c]rond' || exit 1

docker-entrypoint

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,15 @@ if [ "${LOG_FILE}" == "" ]; then
1515
touch ${LOG_FILE}
1616
fi
1717

18-
19-
if [ -f "${HOME_DIR}/config.toml" ]; then
20-
python3 -c "with open('${HOME_DIR}/config.toml') as ct, open('${HOME_DIR}/config.json', 'w') as cj: import toml; import json; json.dump(list(toml.load(ct).values()), cj)"
21-
elif [ -f "${HOME_DIR}/config.yml" ]; then
22-
python3 -c "with open('${HOME_DIR}/config.yml') as cy, open('${HOME_DIR}/config.json', 'w') as cj: import yaml; import json; json.dump(list(yaml.safe_load(cy).values()), cj)"
23-
elif [ -f "${HOME_DIR}/config.yaml" ]; then
24-
python3 -c "with open('${HOME_DIR}/config.yaml') as cy, open('${HOME_DIR}/config.json', 'w') as cj: import yaml; import json; json.dump(list(yaml.safe_load(cy).values()), cj)"
25-
fi
26-
27-
if [ -f "${HOME_DIR}/config.json" ]; then
28-
CONFIG=${HOME_DIR}/config.json
29-
else
30-
echo "NO CONFIG FILE FOUND"
31-
fi
18+
get_config() {
19+
if [ -f "${HOME_DIR}/config.toml" ]; then
20+
python3 -c "with open('${HOME_DIR}/config.toml') as ct, open('${HOME_DIR}/config.json', 'w') as cj: import toml; import json; json.dump(list(toml.load(ct).values()), cj)"
21+
elif [ -f "${HOME_DIR}/config.yml" ]; then
22+
python3 -c "with open('${HOME_DIR}/config.yml') as cy, open('${HOME_DIR}/config.json', 'w') as cj: import yaml; import json; json.dump(list(yaml.safe_load(cy).values()), cj)"
23+
elif [ -f "${HOME_DIR}/config.yaml" ]; then
24+
python3 -c "with open('${HOME_DIR}/config.yaml') as cy, open('${HOME_DIR}/config.json', 'w') as cj: import yaml; import json; json.dump(list(yaml.safe_load(cy).values()), cj)"
25+
fi
26+
}
3227

3328
DOCKER_SOCK=/var/run/docker.sock
3429
CRONTAB_FILE=/etc/crontabs/docker
@@ -183,6 +178,7 @@ parse_schedule() {
183178
}
184179

185180
function build_crontab() {
181+
186182
rm -rf ${CRONTAB_FILE}
187183

188184
ONSTART=()
@@ -260,15 +256,25 @@ EOF
260256
done
261257
}
262258

259+
263260
ensure_docker_socket_accessible
264261

265-
if [ "$1" = "crond" ]; then
266-
if [ -f ${CONFIG} ]; then
267-
build_crontab
262+
start_app() {
263+
get_config
264+
if [ -f "${HOME_DIR}/config.json" ]; then
265+
export CONFIG=${HOME_DIR}/config.json
268266
else
269-
echo "Unable to find ${CONFIG}"
267+
echo "NO CONFIG FILE FOUND"
270268
fi
271-
fi
269+
if [ "$1" = "crond" ]; then
270+
if [ -f ${CONFIG} ]; then
271+
build_crontab
272+
else
273+
echo "Unable to find ${CONFIG}"
274+
fi
275+
fi
276+
echo "$@"
277+
exec "$@"
278+
}
272279

273-
echo "$@"
274-
exec "$@"
280+
start_app "$@"

0 commit comments

Comments
 (0)