diff options
Diffstat (limited to 'docker/blog')
-rw-r--r-- | docker/blog/Dockerfile | 9 | ||||
-rw-r--r-- | docker/blog/daemon.bash | 19 | ||||
-rw-r--r-- | docker/blog/install-hugo.bash | 22 | ||||
-rw-r--r-- | docker/blog/update.bash | 30 |
4 files changed, 80 insertions, 0 deletions
diff --git a/docker/blog/Dockerfile b/docker/blog/Dockerfile new file mode 100644 index 0000000..7414d4e --- /dev/null +++ b/docker/blog/Dockerfile @@ -0,0 +1,9 @@ +FROM debian:latest +ARG CRUPEST_BLOG_UPDATE_INTERVAL=1d +COPY install-hugo.bash /install-hugo.bash +RUN /install-hugo.bash && rm /install-hugo.bash +ENV CRUPEST_BLOG_UPDATE_INTERVAL=${CRUPEST_BLOG_UPDATE_INTERVAL} +COPY daemon.bash update.bash /scripts/ +VOLUME [ "/public" ] +ENTRYPOINT ["tini", "--"] +CMD [ "/scripts/daemon.bash" ] diff --git a/docker/blog/daemon.bash b/docker/blog/daemon.bash new file mode 100644 index 0000000..561a80a --- /dev/null +++ b/docker/blog/daemon.bash @@ -0,0 +1,19 @@ +#! /usr/bin/env bash + +set -e + +# Check I'm root. +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" 1>&2 + exit 1 +fi + +hugo version + +while true; do + /scripts/update.bash + + # sleep for CRUPEST_AUTO_BACKUP_INTERVAL + echo "Sleep for $CRUPEST_BLOG_UPDATE_INTERVAL for next build..." + sleep "$CRUPEST_BLOG_UPDATE_INTERVAL" +done diff --git a/docker/blog/install-hugo.bash b/docker/blog/install-hugo.bash new file mode 100644 index 0000000..a448138 --- /dev/null +++ b/docker/blog/install-hugo.bash @@ -0,0 +1,22 @@ +#! /usr/bin/env bash + +set -e + +apt-get update +apt-get install -y tini locales curl git +rm -rf /var/lib/apt/lists/* +localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 + +VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') + +echo "The latest version of hugo is $VERSION." + +url="https://github.com/gohugoio/hugo/releases/download/v${VERSION}/hugo_extended_${VERSION}_linux-amd64.deb" + +echo "Download hugo from $url." + +curl -sSfOL "$url" +dpkg -i "hugo_extended_${VERSION}_linux-amd64.deb" +rm "hugo_extended_${VERSION}_linux-amd64.deb" + +echo "Hugo version: $(hugo version)." diff --git a/docker/blog/update.bash b/docker/blog/update.bash new file mode 100644 index 0000000..d4bcadc --- /dev/null +++ b/docker/blog/update.bash @@ -0,0 +1,30 @@ +#! /usr/bin/env bash + +set -e + +echo -e "\e[0;103m\e[K\e[1mBegin to build blog...\e[0m" +echo "Begin time: $(date +%Y-%m-%dT%H:%M:%SZ)" + +mkdir -p /public + +# check /blog directory exists +if [[ ! -d /blog ]]; then + echo "Directory /blog not found, clone blog repository..." + git clone https://github.com/crupest/blog.git /blog + cd /blog + git submodule update --init --recursive +else + echo "Directory /blog founded, update blog repository..." + cd /blog + git fetch -p + git reset --hard origin/master + git submodule update --init --recursive +fi + +# Now hugo it +echo "Run hugo to generate blog..." +hugo -d /public + +echo "Finish time: $(date +%Y-%m-%dT%H:%M:%SZ)" +echo -e "\e[0;102m\e[K\e[1mFinish build!\e[0m" + |