This commit is contained in:
maride 2023-07-26 22:22:25 +02:00
commit fce2368393
4 changed files with 56 additions and 0 deletions

15
Dockerfile Normal file
View File

@ -0,0 +1,15 @@
FROM nginx:mainline-alpine
# Install hugo
RUN apk add hugo git
# Copy over auxiliary scripts
COPY aux /aux
# Cron hook for pulling and building
RUN echo "10 * * * * /aux/pull-n-build.sh" >> /var/spool/cron/crontabs/root
# bootstrap script, basically cron && build
# after that, the base-image-specific CMD will kick in, which is quite complex
ENTRYPOINT /aux/bootstrap.sh

8
README.md Normal file
View File

@ -0,0 +1,8 @@
# blogker
A nginx-powered container hosting a hugo-built blog regularly pulled off git.
## Run
`docker run -e REPO_URL=https://git.maride.cc/maride/sec.maride.cc.git -p 80:80 blogker`

13
aux/bootstrap.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
# stop on error
set -e
# start cron daemon (goes into background)
crond
# pull and build freshly
/aux/pull-n-build.sh
# run nginx
nginx -g "daemon off;"

20
aux/pull-n-build.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
# stop on error
set -e -v
# check if initial git run
if [ ! -d /repo ]; then
# yes - repo needs to be cloned
git clone --recurse-submodules $REPO_URL /repo
else
# no - pull existing repo
cd /repo && git pull --recurse-submodules
fi
# build and copy over
cd /repo && \
hugo && \
rm -rf /usr/share/nginx/html/* && \
cp -R /repo/public/* /usr/share/nginx/html