aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Dessaux2022-09-06 00:40:46 +0200
committerJulien Dessaux2022-09-06 00:45:24 +0200
commita300c1497251032d5b40cb86e10cab264cb25492 (patch)
tree13d94ba8a54198802e49e770c8a48127c969354f
parentwording/typos (diff)
downloadwww-a300c1497251032d5b40cb86e10cab264cb25492.tar.gz
www-a300c1497251032d5b40cb86e10cab264cb25492.tar.bz2
www-a300c1497251032d5b40cb86e10cab264cb25492.zip
Reworked the building of the website in a container with buildah
Diffstat (limited to '')
-rw-r--r--Makefile4
-rwxr-xr-xdeploy/build-image.sh59
2 files changed, 38 insertions, 25 deletions
diff --git a/Makefile b/Makefile
index 45c5283..7fa3d6a 100644
--- a/Makefile
+++ b/Makefile
@@ -10,6 +10,10 @@ build: ## make build # builds an optimized version of the website in $(DESTDIR)
cp public/search/index.html search/
(cd search && CGO_ENABLED=0 go build -ldflags '-s -w -extldflags "-static"' ./search.go)
+.PHONY: buildah
+buildah: ## make buildah # builds the container images
+ deploy/build-image.sh
+
.PHONY: clean
clean: ## make clean # removed all $(DESTDIR) contents
@echo "----- Cleaning old build -----"
diff --git a/deploy/build-image.sh b/deploy/build-image.sh
index 4d576dd..a9cf511 100755
--- a/deploy/build-image.sh
+++ b/deploy/build-image.sh
@@ -1,55 +1,64 @@
#!/usr/bin/env bash
-set -eu
+set -euo pipefail
-(cd .. && make clean build)
-
-ret=0; output=$(buildah images adyxax/alpine &>/dev/null) || ret=$?
-if [ $ret != 0 ]; then
+ret=0; buildah images adyxax/alpine &>/dev/null || ret=$?
+if [[ "${ret}" != 0 ]]; then
+ buildah rmi --all
ALPINE_LATEST=$(curl --silent https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/ |
perl -lane '$latest = $1 if $_ =~ /^<a href="(alpine-minirootfs-\d+\.\d+\.\d+-x86_64\.tar\.gz)">/; END {print $latest}'
)
if [ ! -e "./${ALPINE_LATEST}" ]; then
echo "Fetching ${ALPINE_LATEST}..."
- curl --silent https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/${ALPINE_LATEST} \
- --output ./${ALPINE_LATEST}
+ curl --silent "https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/${ALPINE_LATEST}" \
+ --output "./${ALPINE_LATEST}"
fi
ctr=$(buildah from scratch)
- buildah add $ctr ${ALPINE_LATEST} /
- buildah run $ctr /bin/sh -c 'apk add --no-cache pcre sqlite-libs'
- buildah commit $ctr adyxax/alpine
+ buildah add "${ctr}" "${ALPINE_LATEST}" /
+ buildah run "${ctr}" /bin/sh -c 'apk upgrade --no-cache'
+ buildah run "${ctr}" /bin/sh -c 'apk add --no-cache pcre sqlite-libs'
+ buildah commit "${ctr}" adyxax/alpine
+ buildah rm "${ctr}"
+fi
+
+ret=0; buildah images adyxax/hugo &>/dev/null || ret=$?
+if [[ "${ret}" != 0 ]]; then
+ hugo=$(buildah from adyxax/alpine)
+ buildah run "${hugo}" /bin/sh -c 'apk add --no-cache go git hugo make'
+ buildah commit "${hugo}" adyxax/hugo
else
- ctr=$(buildah from adyxax/alpine)
- #buildah run $ctr /bin/sh -c 'apk upgrade --no-cache'
+ hugo=$(buildah from adyxax/hugo)
fi
+buildah run -v "${PWD}":/www "${hugo}" -- sh -c 'cd /www; make build'
+buildah rm "${hugo}"
+
ret=0; buildah images adyxax/nginx &>/dev/null || ret=$?
-if [ $ret != 0 ]; then
+if [[ "${ret}" != 0 ]]; then
nginx=$(buildah from adyxax/alpine)
- buildah run $nginx /bin/sh -c 'apk add --no-cache nginx'
- buildah commit $nginx adyxax/nginx
+ buildah run "${nginx}" /bin/sh -c 'apk add --no-cache nginx'
+ buildah commit "${nginx}" adyxax/nginx
else
nginx=$(buildah from adyxax/nginx)
- #buildah run $nginx /bin/sh -c 'apk upgrade --no-cache'
fi
-buildah copy $nginx nginx.conf headers_secure.conf headers_static.conf /etc/nginx/
+(cd deploy && buildah copy "${nginx}" nginx.conf headers_secure.conf headers_static.conf /etc/nginx/)
buildah config \
--author 'Julien Dessaux' \
--cmd nginx \
--port 80 \
- $nginx
-buildah copy $nginx ../public /var/www/www.adyxax.org
+ "${nginx}"
+buildah copy "${nginx}" public /var/www/www.adyxax.org
-buildah commit $nginx adyxax/www
-buildah rm $nginx
+buildah commit "${nginx}" adyxax/www
+buildah rm "${nginx}"
ctr=$(buildah from scratch)
-buildah copy $ctr ../search/search /
+buildah copy "${ctr}" search/search /
buildah config \
--author 'Julien Dessaux' \
--cmd /search \
--port 8080 \
- $ctr
-buildah commit $ctr adyxax/www-search
-buildah rm $ctr
+ "${ctr}"
+buildah commit "${ctr}" adyxax/www-search
+buildah rm "${ctr}"