Commit graph

22 commits

Author SHA1 Message Date
65d3097548 ci: shellcheck disable=SC2086 2023-11-09 09:18:19 +01:00
9dec488c64 git Revert "ci: fix linter errors: nextcloud-exec.sh"
This reverts commit d3755a20fd.
2023-11-09 09:15:52 +01:00
156aad8d30 ci: # shellcheck disable=SC1091 2023-11-09 09:07:39 +01:00
d3755a20fd ci: fix linter errors: nextcloud-exec.sh 2023-11-09 09:05:30 +01:00
d65d3ae4e0 ci: fix linter errors: healthcheck.sh 2023-11-09 09:04:49 +01:00
3eab1e668f ci: fix linter errors: find-container.sh 2023-11-09 09:03:35 +01:00
993d41945c ci: fix linter errors: entrypoint.sh 2023-11-09 09:03:00 +01:00
b0fc5f7cb7 ci: fix linter errors: run-cron-php.sh 2023-11-09 09:02:29 +01:00
4a8746e853 ci: fix linter errors: cron-tasks.sh 2023-11-09 09:02:19 +01:00
John Molakvoæ
b639405e9b
fix: only return one container when searching (#22) 2023-08-07 15:26:14 -05:00
Robert Dailey
76bf57baf3 Use correct match ending for project naming mode 2022-03-19 14:18:52 -05:00
Robert Dailey
52579827be Support naming conventions for compose v2 and swarm
- Naming convention in Docker Swarm: Fixes #14
- Compose v2 uses `-` separator instead of `_`: Fixes #10
2022-03-19 14:00:38 -05:00
Robert Dailey
f2ce54653b Fix various custom script processing issues
The following issues were addressed. Note that these are edge cases.

* If an empty `/cron-scripts` directory was mounted in the container, an
  error would occur.
* If files in the `/cron-scripts` directory had spaces in the name, this
  would cause issues.
* stdin was held open when running `docker exec` which would cause hangs
  and other issues. The `exec` command is now run non-interactively.
* Custom scripts that failed would interrupt processing of scripts after
  it, if any.
2020-10-27 16:48:34 -05:00
Robert Dailey
ff71477632 Do not replace built-in scripts
When the user mounts /cron-scripts in the container, this replaced the built-in
scripts. The built-in scripts are now shipped in /cron-scripts-builtin now.
2020-10-26 13:55:10 -05:00
Robert Dailey
faa77b77c8 Support for custom shells
It is now possible to override and explicitly specify the shell you
would like used when executing cron tasks. This is accomplished with the
NEXTCLOUD_EXEC_SHELL environment variable, which defaults to bash. You
can also override and customize the arguments provided to that shell
executable via NEXTCLOUD_EXEC_SHELL_ARGS, which defaults to "-c".

See documentation for more detail and examples.

Fixes #6
2020-08-28 15:23:33 -05:00
Robert Dailey
08ec92f509 Add extra logs and debugging features
* New DEBUG environment variable enables `set -x` in shell scripts for
  extra verbose output for debugging custom cron scripts and to assist
  with development of the core scripts.
* Verify if we can find the Nextcloud container on start up. Fail if
  not.
* Print information about how we will search for Nextcloud on start up.
* During cron task execution, the ID of the Nextcloud container is
  printed, if found.
2020-08-28 14:52:00 -05:00
Robert Dailey
6416dd8731 Cronjob works now between Nextcloud container recreation
If the Nextcloud container is recreated while the cronjob container is still running, the ID of the
container is obtained each time the cron tasks are executed. Previously it was cached on entrypoint,
so if the ID changed this container would fail.
2019-06-20 19:34:58 -05:00
Robert Dailey
26bf5c5f82
Use tini as init for entrypoint script
Signed-off-by: Robert Dailey <rcdailey@gmail.com>
2019-02-03 14:14:11 -06:00
Robert Dailey
e9b5772dae
Allow configuration of user used for task execution
New NEXTCLOUD_EXEC_USER environment variable added which allows control over which
user is used to execute cron tasks inside the Nextcloud container. By default, the
user is `www-data`. If the environment variable is specified but empty, no `--user`
option is provided to `docker exec`.
2019-01-11 21:08:39 -06:00
Robert Dailey
990ee018d2 SIGTERM now stops crond
This means `docker stop` will be faster
2018-12-06 17:58:26 -06:00
Robert Dailey
ab6372fa79 Provide the ability to run user-defined cron tasks
Mount individual shell scripts (with the `*.sh` extension) inside `/cron-scripts/` in the
container. The cron daemon will automatically run these scripts inside the Nextcloud
container for you. Write the scripts as if they will run in the Nextcloud container
itself.
2018-12-06 17:58:26 -06:00
Robert Dailey
04a4297164 Initial implementation of the nextcloud cronjob docker image 2018-12-01 21:34:56 -06:00