summaryrefslogtreecommitdiff
path: root/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build.sh')
-rwxr-xr-xbuild.sh30
1 files changed, 22 insertions, 8 deletions
diff --git a/build.sh b/build.sh
index ba48e56..f0de4af 100755
--- a/build.sh
+++ b/build.sh
@@ -1,21 +1,35 @@
#!/bin/sh
+set -e
+
remote="g.freya.cat"
user="freya"
+architectures="linux/amd64,linux/arm64"
-docker login "$remote" -u "$user"
+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() {
- image="$(echo "$1" | tr -d './')"
- echo "building $image"
- docker build "$image" -t "$remote/$user/$image:latest"
- docker push "$remote/$user/$image"
+ docker buildx build --push --platform "$architectures" "$image" -t "$remote/$user/$image: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
- images="$(find . -mindepth 1 -type d \( -name '.*' -prune -o -print \))"
- IFS=$'\n'
- for image in $images; do build "$image"; done;
+ build_all
fi