From 53fa0c12caa389eaf8e676e93a9e265efd262612 Mon Sep 17 00:00:00 2001 From: Moritz Utcke Date: Wed, 6 Nov 2024 12:02:57 +1100 Subject: [PATCH] build.sh verbessert --- build.sh | 66 ++++++++++++++++++++++++++------------------------------ 1 file changed, 30 insertions(+), 36 deletions(-) diff --git a/build.sh b/build.sh index 38495dd5..603d9fb4 100644 --- a/build.sh +++ b/build.sh @@ -14,38 +14,24 @@ DB_PORT=5432 # ausgeführt zu werden. Außerdem würde es nicht wirklich Sinn ergeben, wenn das # Build Skript sich die Änderungen am build Skript holen würde... # Wir müssen alle lokalen Pakete verlinken + +# --------------------------------- Database --------------------------------- # + cd ../database bun link -cd ../api -bun link -cd ../ui -bun link -cd ../database bun install + +# ------------------------------------ API ----------------------------------- # + cd ../api bun install -cd ../ui -bun install +bun link @ibcornelsen/database + +# ------------------------------------ APP ----------------------------------- # + cd ../$APP_NAME - - -# Als erstes linken wir das package mit yalc, damit wir z.B. in online-energieausweis darauf zugreifen können. -cd ../database -bunx yalc push --scripts -cd ../api -bunx yalc push --scripts -cd ../$APP_NAME -bunx yalc add @ibcornelsen/database -bunx yalc add @ibcornelsen/api -# Dann installieren wir noch einmal alle dependencies, das ist besonders wichtig -# falls wir lokal verlinkte Projekte haben, sonst werden die nicht in unser -# docker image übernommen bun install - -# Dann stoppen wir unser altes docker image und bauen es neu. -docker stop $APP_NAME -docker rm $APP_NAME -docker build -t $APP_NAME . +bun link @ibcornelsen/database # Jeder unserer Applikationen hat ein Verzeichnis in dem alle Dateien dauerhaft, # Versionsunabhängig gespeichert werden. Dieses legen wir hier an, falls es noch @@ -54,10 +40,10 @@ PERSISTENT_DIR="${HOME}/persistent/${APP_NAME}"; mkdir -p $PERSISTENT_DIR; # TODO: Wir legen hier die .env Datei an, die die SSL Zertifikate enthält. -# rm -f ~/$APP_NAME/.env; -# touch ~/$APP_NAME/.env; -# echo "PRIVATE_KEY=$(cat /etc/letsencrypt/live/ibcornelsen.de/privkey.pem | base64 | tr -d '\n')" >> ~/$APP_NAME/.env; -# echo "CERTIFICATE=$(cat /etc/letsencrypt/live/ibcornelsen.de/fullchain.pem | base64 | tr -d '\n')" >> ~/$APP_NAME/.env; +rm -f ~/$APP_NAME/.env; +touch ~/$APP_NAME/.env; +echo "PRIVATE_KEY=$(cat /etc/letsencrypt/live/ibcornelsen.de/privkey.pem | base64 | tr -d '\n')" >> ~/$APP_NAME/.env; +echo "CERTIFICATE=$(cat /etc/letsencrypt/live/ibcornelsen.de/fullchain.pem | base64 | tr -d '\n')" >> ~/$APP_NAME/.env; # Wir müssen sichergehen, dass der Database Container läuft, sonst können wir ihn nicht linken. if [ ! $((docker ps | grep $DB_CONTAINER_NAME) | wc -l) -gt 0 ]; then @@ -66,12 +52,20 @@ if [ ! $((docker ps | grep $DB_CONTAINER_NAME) | wc -l) -gt 0 ]; then cd ../$APP_NAME; fi +# Auch die API sollte bereits laufen +if [ ! $((pm2 pid api | wc -l)) -gt 0 ]; then + cd ../api; + make prod; + cd ../$APP_NAME; +fi # Jetzt wo wir alle Vorbereitungen getroffen haben, starten wir das Docker Image und linken es mit der Datenbank. -docker run -d --name $APP_NAME --link $DB_CONTAINER_NAME \ - -v "${PERSISTENT_DIR}:/persistent" \ - -v "./node_modules/@ibcornelsen/database:/${APP_NAME}/node_modules/@ibcornelsen/database" \ - -v "./node_modules/@ibcornelsen/api:/${APP_NAME}/node_modules/@ibcornelsen/api" \ - -v "./node_modules/@ibcornelsen/ui:/${APP_NAME}/node_modules/@ibcornelsen/ui" \ - -p "${APP_PORT}:3000" \ - $APP_NAME; \ No newline at end of file +# docker run -d --name $APP_NAME --link $DB_CONTAINER_NAME \ +# -v "${PERSISTENT_DIR}:/persistent" \ +# -v "./node_modules/@ibcornelsen/database:/${APP_NAME}/node_modules/@ibcornelsen/database" \ +# -v "./node_modules/@ibcornelsen/api:/${APP_NAME}/node_modules/@ibcornelsen/api" \ +# -v "./node_modules/@ibcornelsen/ui:/${APP_NAME}/node_modules/@ibcornelsen/ui" \ +# -p "${APP_PORT}:3000" \ +# $APP_NAME; + +bun run dev \ No newline at end of file