Files
stats/sh/docker-build
Carl-Gerhard Lindesvärd 81a7e5d62e feat: dashboard v2, esm, upgrades (#211)
* esm

* wip

* wip

* wip

* wip

* wip

* wip

* subscription notice

* wip

* wip

* wip

* fix envs

* fix: update docker build

* fix

* esm/types

* delete dashboard :D

* add patches to dockerfiles

* update packages + catalogs + ts

* wip

* remove native libs

* ts

* improvements

* fix redirects and fetching session

* try fix favicon

* fixes

* fix

* order and resize reportds within a dashboard

* improvements

* wip

* added userjot to dashboard

* fix

* add op

* wip

* different cache key

* improve date picker

* fix table

* event details loading

* redo onboarding completely

* fix login

* fix

* fix

* extend session, billing and improve bars

* fix

* reduce price on 10M
2025-10-16 12:27:44 +02:00

83 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
APP=$1
VERSION=$2
PRERELEASE=$3 # New parameter for pre-release tag
if [ -z "$APP" ]; then
echo "Please provide an app name as an argument."
echo "Usage: $0 <app_name> <version> [pre-release-tag]"
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> [pre-release-tag]"
exit 1
fi
# Add warning prompt
if [ -z "$PRERELEASE" ]; then
read -p "You're building WITHOUT any pre-release ($VERSION). Do you wish to continue (y/N)? " -n 1 -r
else
read -p "You're building WITH pre-release ($VERSION). Do you wish to continue (y/N)? " -n 1 -r
fi
echo # Move to a new line
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
echo "Aborting..."
exit 1
fi
# Ensure Docker Buildx is available and set up a builder
docker buildx rm multi-arch-builder 2>/dev/null || true # Remove existing builder if it exists
docker buildx create --name multi-arch-builder --use || true
# Function to build a multi-architecture image
build_image() {
local app=$1
local image_name="lindesvard/openpanel-$app"
local full_version="$image_name:$VERSION"
if [ -n "$PRERELEASE" ]; then
echo "(pre-release) Building multi-architecture image for $full_version"
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t "$full_version" \
--build-arg DATABASE_URL="postgresql://p@p:5432/p" \
--build-arg VITE_SELF_HOSTED="true" \
-f "apps/$app/Dockerfile" \
--push \
.
else
echo "(latest) Building multi-architecture image for $full_version"
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t "$full_version" \
-t "$image_name:latest" \
--build-arg DATABASE_URL="postgresql://p@p:5432/p" \
--build-arg VITE_SELF_HOSTED="true" \
-f "apps/$app/Dockerfile" \
--push \
.
fi
if [ $? -ne 0 ]; then
echo "Failed to build $full_version"
exit 1
fi
echo "Successfully built and pushed multi-architecture image for $full_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