diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2021-03-30 02:21:21 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2021-03-30 09:40:13 +0300 |
commit | 1592e333be61ed600379d9a59ed68329d269f5f5 (patch) | |
tree | f4c2104e99963045eea83120a67a12352f19489a | |
parent | examples: mention access tokens (diff) | |
download | cgitize-1592e333be61ed600379d9a59ed68329d269f5f5.tar.gz cgitize-1592e333be61ed600379d9a59ed68329d269f5f5.zip |
docker: enable scheduled runs via crond
Diffstat (limited to '')
-rw-r--r-- | .ci/.gitattributes | 1 | ||||
-rw-r--r-- | .dockerignore | 1 | ||||
-rw-r--r-- | .gitattributes | 2 | ||||
-rw-r--r-- | Dockerfile | 4 | ||||
-rwxr-xr-x | docker/entrypoint.sh | 33 |
5 files changed, 39 insertions, 2 deletions
diff --git a/.ci/.gitattributes b/.ci/.gitattributes deleted file mode 100644 index dfdb8b7..0000000 --- a/.ci/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.sh text eol=lf diff --git a/.dockerignore b/.dockerignore index 272da1f..eabf2d8 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,4 @@ * !/cgitize/** +!/docker/** diff --git a/.gitattributes b/.gitattributes index 176a458..d76765e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,3 @@ * text=auto + +*.sh text eol=lf @@ -1,13 +1,15 @@ FROM alpine:3.10 -RUN apk add --no-cache git openssh-client python3 +RUN apk add --no-cache bash git openssh-client python3 tini ARG ssh_sock_dir=/var/run/cgitize ARG ssh_sock_path="$ssh_sock_dir/ssh-agent.sock" ENV SSH_AUTH_SOCK "$ssh_sock_path" +COPY ["docker/entrypoint.sh", "/"] COPY ["cgitize/", "/usr/src/cgitize/"] WORKDIR /usr/src +ENTRYPOINT ["/sbin/tini", "--", "/entrypoint.sh"] CMD ["python3", "-m", "cgitize.main"] diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100755 index 0000000..cf6eb77 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021 Egor Tensin <Egor.Tensin@gmail.com> +# This file is part of the "cgitize" project. +# For details, see https://github.com/egor-tensin/cgitize. +# Distributed under the MIT License. + +set -o errexit -o nounset -o pipefail + +schedule="${SCHEDULE:-once}" + +case "$schedule" in + once) exec "$@" ;; + 15min) schedule='*/15 * * * *' ;; + hourly) schedule='0 * * * *' ;; + daily) schedule='0 0 * * *' ;; + weekly) schedule='0 0 * * 1' ;; + monthly) schedule='0 0 1 * *' ;; + *) ;; +esac + +script="#!/bin/bash +cd /usr/src &&$( printf -- ' %q' "$@" )" + +echo "$script" > /task.sh +chmod +x /task.sh + +crontab="$schedule /task.sh +# This is the new crontab." + +echo "$crontab" | crontab - + +crond -f |