57 lines
2.2 KiB
Bash
57 lines
2.2 KiB
Bash
#!/bin/bash
|
|
|
|
# Define your environment variables here
|
|
APP_NAME="online-energieausweis"
|
|
APP_PORT=3000
|
|
DB_CONTAINER_NAME="database"
|
|
DB_NAME="main"
|
|
DB_USER="main"
|
|
DB_PASSWORD="hHMP8cd^N3SnzGRR"
|
|
DB_PORT=5432
|
|
|
|
# Wir gehen davon aus, dass die Änderungen bereits von GitHub gepullt wurden
|
|
# Dieses Skript ist nur dafür gedacht, von GitHub bei einer Automation
|
|
# 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
|
|
cd ../database
|
|
bun link
|
|
cd ../api
|
|
bun link
|
|
cd ../ui
|
|
bun link
|
|
cd ../$APP_NAME
|
|
|
|
|
|
# Als erstes linken wir das package mit bun, damit wir z.B. in online-energieausweis darauf zugreifen können.
|
|
bun link
|
|
# 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 .
|
|
|
|
# Jeder unserer Applikationen hat ein Verzeichnis in dem alle Dateien dauerhaft,
|
|
# Versionsunabhängig gespeichert werden. Dieses legen wir hier an, falls es noch
|
|
# nicht existiert.
|
|
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;
|
|
|
|
# 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; |