55 lines
1.4 KiB
Bash
Executable File
55 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
APP=$1
|
|
VERSION=$2
|
|
|
|
if [ -z "$APP" ]; then
|
|
echo "Please provide an app name as an argument."
|
|
echo "Usage: $0 <app_name> <version>"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if version is provided
|
|
if [ -z "$VERSION" ]; then
|
|
echo "Please provide a version number as an argument."
|
|
echo "Usage: $0 $APP <version>"
|
|
exit 1
|
|
fi
|
|
|
|
# Ensure Docker Buildx is available and set up a builder
|
|
docker buildx create --use --name multi-arch-builder || true
|
|
|
|
# Function to build a multi-architecture image
|
|
build_image() {
|
|
local app=$1
|
|
local image_name="lindesvard/openpanel-$app"
|
|
|
|
echo "Building multi-architecture image for $image_name:$VERSION"
|
|
|
|
docker buildx build \
|
|
--platform linux/amd64,linux/arm64 \
|
|
-t "$image_name:$VERSION" \
|
|
-t "$image_name:latest" \
|
|
--build-arg DATABASE_URL="postgresql://p@p:5432/p" \
|
|
-f "apps/$app/Dockerfile" \
|
|
--push \
|
|
.
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "Failed to build $image_name:$VERSION"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Successfully built and pushed multi-architecture image for $image_name:$VERSION"
|
|
}
|
|
|
|
if [ "$APP" == "all" ]; then
|
|
build_image "dashboard"
|
|
build_image "worker"
|
|
build_image "api"
|
|
echo "All multi-architecture images have been built and pushed successfully."
|
|
else
|
|
build_image $APP
|
|
echo "Multi-architecture image for $APP has been built and pushed successfully."
|
|
fi
|