diff options
author | Freya Murphy <freya@freyacat.org> | 2024-06-06 21:30:12 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-06-06 21:30:12 -0400 |
commit | 04b1b8d4fcc189a7a6d617c224408cb56b14ac40 (patch) | |
tree | 9ab409dff6cabb9b894a938d785af826edf4946b /build.sh | |
parent | initial (diff) | |
download | images-04b1b8d4fcc189a7a6d617c224408cb56b14ac40.tar.gz images-04b1b8d4fcc189a7a6d617c224408cb56b14ac40.tar.bz2 images-04b1b8d4fcc189a7a6d617c224408cb56b14ac40.zip |
buildx, asterisk
Diffstat (limited to 'build.sh')
-rwxr-xr-x | build.sh | 30 |
1 files changed, 22 insertions, 8 deletions
@@ -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 |