ci(deploy): standardize docker compose env file usage across scripts
- Added --env-file .env to all docker compose commands for consistent environment variable loading - Added MISTRAL_API_KEY validation in deploy.sh with fatal error if missing - Added --force-recreate flag to recipe-api restarts in disable/enable receipt trace scripts - Added .env file existence check in rebuild_flutter.sh - Added API service recreation logic in deploy.sh when backend/importer services are updated
This commit is contained in:
@@ -143,7 +143,10 @@ if [ "$BUILD_BACKEND" = true ] || [ "$RUN_SEED" = true ] || [ "$RUN_CLEAN_DATABA
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
export SKIP_MIGRATION
|
export SKIP_MIGRATION
|
||||||
COMPOSE_CMD=(docker compose -f compose.yml -f compose.flutter.yml)
|
COMPOSE_CMD=(docker compose --env-file .env -f compose.yml -f compose.flutter.yml)
|
||||||
|
|
||||||
|
MISTRAL_API_KEY="$(read_env_value MISTRAL_API_KEY)"
|
||||||
|
[ -n "$MISTRAL_API_KEY" ] || fatal "MISTRAL_API_KEY saknas i .env"
|
||||||
|
|
||||||
# ── Git pull ──────────────────────────────────────────────────────────────────
|
# ── Git pull ──────────────────────────────────────────────────────────────────
|
||||||
info "Hämtar senaste kod (recipe-app)..."
|
info "Hämtar senaste kod (recipe-app)..."
|
||||||
@@ -178,6 +181,11 @@ fi
|
|||||||
info "Startar tjänster..."
|
info "Startar tjänster..."
|
||||||
"${COMPOSE_CMD[@]}" up -d
|
"${COMPOSE_CMD[@]}" up -d
|
||||||
|
|
||||||
|
if [ "$BUILD_BACKEND" = true ] || [ "$BUILD_IMPORTER" = true ]; then
|
||||||
|
info "Återskapar API-tjänster för att säkra uppdaterade env-variabler..."
|
||||||
|
"${COMPOSE_CMD[@]}" up -d --force-recreate recipe-api importer-api
|
||||||
|
fi
|
||||||
|
|
||||||
# ── Databasrensning (opt-in) ──────────────────────────────────────────────────
|
# ── Databasrensning (opt-in) ──────────────────────────────────────────────────
|
||||||
if [ "$RUN_CLEAN_DATABASE" = true ]; then
|
if [ "$RUN_CLEAN_DATABASE" = true ]; then
|
||||||
CLEAN_SQL_FILE="backend/prisma/maintenance/clean-database.sql"
|
CLEAN_SQL_FILE="backend/prisma/maintenance/clean-database.sql"
|
||||||
|
|||||||
@@ -19,6 +19,6 @@ fi
|
|||||||
echo "RECEIPT_TRACE_DECISIONS=0 satt i .env"
|
echo "RECEIPT_TRACE_DECISIONS=0 satt i .env"
|
||||||
|
|
||||||
echo "Startar om recipe-api utan full trace..."
|
echo "Startar om recipe-api utan full trace..."
|
||||||
docker compose -f compose.yml -f compose.flutter.yml up -d recipe-api
|
docker compose --env-file .env -f compose.yml -f compose.flutter.yml up -d --force-recreate recipe-api
|
||||||
|
|
||||||
echo "Klart."
|
echo "Klart."
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ fi
|
|||||||
echo "RECEIPT_TRACE_DECISIONS=1 satt i .env"
|
echo "RECEIPT_TRACE_DECISIONS=1 satt i .env"
|
||||||
|
|
||||||
echo "Bygger och startar om recipe-api..."
|
echo "Bygger och startar om recipe-api..."
|
||||||
docker compose -f compose.yml -f compose.flutter.yml up -d --build recipe-api
|
docker compose --env-file .env -f compose.yml -f compose.flutter.yml up -d --build --force-recreate recipe-api
|
||||||
|
|
||||||
mkdir -p logs
|
mkdir -p logs
|
||||||
LOG_FILE="logs/receipt_decisions_$(date +%Y%m%d_%H%M%S).log"
|
LOG_FILE="logs/receipt_decisions_$(date +%Y%m%d_%H%M%S).log"
|
||||||
echo "Startar loggning till $LOG_FILE"
|
echo "Startar loggning till $LOG_FILE"
|
||||||
echo "Tryck Ctrl+C för att avsluta loggströmmen."
|
echo "Tryck Ctrl+C för att avsluta loggströmmen."
|
||||||
|
|
||||||
docker compose -f compose.yml -f compose.flutter.yml logs -f recipe-api | tee "$LOG_FILE"
|
docker compose --env-file .env -f compose.yml -f compose.flutter.yml logs -f recipe-api | tee "$LOG_FILE"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
APP_DIR="${1:-/opt/containers/recipe-app}"
|
APP_DIR="${1:-/opt/containers/recipe-app}"
|
||||||
COMPOSE_FILES=(-f compose.yml -f compose.flutter.yml)
|
COMPOSE_FILES=(--env-file .env -f compose.yml -f compose.flutter.yml)
|
||||||
SERVICE="recipe-flutter"
|
SERVICE="recipe-flutter"
|
||||||
|
|
||||||
log() { echo "[flutter-rebuild] $*"; }
|
log() { echo "[flutter-rebuild] $*"; }
|
||||||
@@ -18,6 +18,8 @@ if [ ! -f "compose.yml" ] || [ ! -f "compose.flutter.yml" ]; then
|
|||||||
fail "compose.yml eller compose.flutter.yml saknas i $APP_DIR"
|
fail "compose.yml eller compose.flutter.yml saknas i $APP_DIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
[ -f ".env" ] || fail ".env saknas i $APP_DIR"
|
||||||
|
|
||||||
log "Bygger om $SERVICE"
|
log "Bygger om $SERVICE"
|
||||||
docker compose "${COMPOSE_FILES[@]}" build "$SERVICE"
|
docker compose "${COMPOSE_FILES[@]}" build "$SERVICE"
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ trap 'echo "[reset][ERROR] Rad ${LINENO}: kommando misslyckades: ${BASH_COMMAND}
|
|||||||
# Config
|
# Config
|
||||||
# ----------------------------------------
|
# ----------------------------------------
|
||||||
APP_DIR="${1:-/opt/containers/recipe-app}"
|
APP_DIR="${1:-/opt/containers/recipe-app}"
|
||||||
COMPOSE_FILES=(-f compose.yml -f compose.flutter.yml)
|
COMPOSE_FILES=(--env-file .env -f compose.yml -f compose.flutter.yml)
|
||||||
DB_CONTAINER="recipe-db"
|
DB_CONTAINER="recipe-db"
|
||||||
IMPORTER_DIR="../microservice-importer"
|
IMPORTER_DIR="../microservice-importer"
|
||||||
SEED_FILE="db/seeds/seed_all.sql"
|
SEED_FILE="db/seeds/seed_all.sql"
|
||||||
|
|||||||
Reference in New Issue
Block a user