36 lines
641 B
Bash
Executable file
36 lines
641 B
Bash
Executable file
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
remote="g.freya.cat"
|
|
user="freya"
|
|
architectures="linux/amd64,linux/arm64"
|
|
|
|
init() {
|
|
docker login "$remote" -u "$user"
|
|
current="$(docker buildx inspect | head -n 1 | awk '{ print $2 }')"
|
|
if [ "$current" != "builder" ]; then
|
|
docker buildx create --name builder
|
|
docker buildx use builder
|
|
fi
|
|
}
|
|
|
|
build() {
|
|
docker buildx build --push --platform "$architectures" "$1" -t "$remote/$user/$1:latest"
|
|
}
|
|
|
|
build_all() {
|
|
images="$(find . -mindepth 1 -maxdepth 1 -type d | grep -v '\./\.' | tr -d './')"
|
|
IFS=$'\n'
|
|
for image in $images; do
|
|
build "$image"
|
|
done
|
|
}
|
|
|
|
init
|
|
if [ "$#" -gt 0 ]; then
|
|
build "$1"
|
|
else
|
|
build_all
|
|
fi
|