build.sh verbessert
This commit is contained in:
66
build.sh
66
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;
|
||||
# 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
|
||||
Reference in New Issue
Block a user