mastodon/container/build-images.sh

43 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -xe
SOURCE=$1
TAG=$2
require_input() {
input=$1
name=$2
if [ "$input" == "" ]; then
echo "Input, $name, required but not present"
exit 1;
fi
}
require_input "$SOURCE" "Dockerfile"
require_input "$TAG" "container tag"
ARCHITECTURES=('arm64v8' 'arm32v7' 'amd64')
for architecture in "${ARCHITECTURES[@]}"; do
cp "$SOURCE" "$SOURCE-$architecture"
if [ "$architecture" == arm32v7 ]; then
sed -i'' 's/:amd64/:arm32v7/g' "$SOURCE-$architecture" # source image
sed -i'' 's/FROM amd64/FROM arm32v7/g' "$SOURCE-$architecture" # source image
sed -i'' 's/x64/armv7l/g' "$SOURCE-$architecture" # for node
sed -i'' 's/amd64/armhf/g' "$SOURCE-$architecture" # for tini
fi
if [ "$architecture" == arm64v8 ]; then
sed -i'' 's/:amd64/:arm64v8/g' "$SOURCE-$architecture" # source image
sed -i'' 's/FROM amd64/FROM arm64v8/g' "$SOURCE-$architecture" # source image
sed -i'' 's/x64/arm64/g' "$SOURCE-$architecture" # for node
sed -i'' 's/amd64/arm64/g' "$SOURCE-$architecture" # for tini
fi
buildah build-using-dockerfile -f "$SOURCE-$architecture" -t "$TAG:$architecture" .
rm "$SOURCE-$architecture"
done