docker-git-puller/README.md

53 lines
2.3 KiB
Markdown
Raw Normal View History

# docker-git-puller
A docker container that pulls a git repo (updates it) every given amount of time (default 60s) with a shell script.
## Purpose
2024-09-21 19:30:22 +00:00
There are many scenarios where such a container could help. For example (as I use it), this image could be used to pull a hugo built website (living in a public git repo) to a local folder, so that another docker container can serve the most recent files.
Please **be aware** of the fact that this image currently does no merging if some local file changed (maybe up to the future).
See the [docker-compose example](example/) for a quick overview how this works.
2024-09-22 17:31:55 +00:00
## Building
Building this docker image is quite easy. For a quick start, just use this:
```sh
docker build -t git-puller .
```
After this is done successfully, you can check out the new image in your local image store with `docker images`.
## Configuration
Essentially, this image can be configured over environment variables.
- **`PULL_LOCATION`**: used to set the container-internal folder which is getting pulled frequently (you should mount one into this direction) - defaults to `/to-pull`
- **`PULL_INTERVAL`**: the interval between pulls in seconds (minimum is 5, default is 60)
- **`PULLER_UID`**: the uid of the user that executes the `git pull` command (defaults to 1000)
- **`GIT_OUTPUT`**: if set to 0, the `git pull` stdout will be hidden from docker logs (redirected to /dev/null ;) (if not set, everything is visible in the docker logs)
2024-09-21 21:37:56 +00:00
## Useful links
Similar projects:
- [https://github.com/abes-esr/gitpuller-docker/](https://github.com/abes-esr/gitpuller-docker/)
- [https://github.com/Ekito/docker-cron/](https://github.com/Ekito/docker-cron/)
- [https://github.com/keckelt/cron-alpine/](https://github.com/keckelt/cron-alpine/)
- [https://github.com/theohbrothers/docker-alpine-cron/](https://github.com/theohbrothers/docker-alpine-cron/)
Forum posts:
- [https://serverfault.com/questions/599103/make-a-docker-application-write-to-stdout](https://serverfault.com/questions/599103/make-a-docker-application-write-to-stdout)
- [https://stackoverflow.com/questions/71557316/docker-alpine-execute-command-as-another-user](https://stackoverflow.com/questions/71557316/docker-alpine-execute-command-as-another-user)
## License
see [LICENSE.md](LICENSE.md)