From 8ca74c54353df434063cca64f2b97f3e8847202d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Wed, 19 Feb 2025 00:07:00 +0100 Subject: [PATCH] chore(root): update scripts --- apps/dashboard/Dockerfile | 3 +++ sh/docker-build | 51 ++++++++++++++++++++++++++++++--------- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/apps/dashboard/Dockerfile b/apps/dashboard/Dockerfile index 9c02e021..c4f6053b 100644 --- a/apps/dashboard/Dockerfile +++ b/apps/dashboard/Dockerfile @@ -2,6 +2,9 @@ ARG NODE_VERSION=20.15.1 FROM node:${NODE_VERSION}-slim AS base +# FIX: Bad workaround (https://github.com/nodejs/corepack/issues/612) +ENV COREPACK_INTEGRITY_KEYS=0 + ENV SKIP_ENV_VALIDATION="1" ARG DATABASE_URL diff --git a/sh/docker-build b/sh/docker-build index 78a083b2..aa2634a9 100755 --- a/sh/docker-build +++ b/sh/docker-build @@ -2,38 +2,65 @@ 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 " + echo "Usage: $0 [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 " + echo "Usage: $0 $APP [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-$PRERELEASE). 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 create --use --name multi-arch-builder || true +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" - 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 \ - . + # Prepare tags based on whether PRERELEASE is provided + if [ -z "$PRERELEASE" ]; then + 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 \ + . + else + echo "Building multi-architecture image for $image_name:$VERSION-$PRERELEASE" + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t "$image_name:$VERSION-$PRERELEASE" \ + --build-arg DATABASE_URL="postgresql://p@p:5432/p" \ + -f "apps/$app/Dockerfile" \ + --push \ + . + fi if [ $? -ne 0 ]; then echo "Failed to build $image_name:$VERSION"