59 lines
1.7 KiB
Bash
Executable File
59 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -Eeuo pipefail
|
|
|
|
WM_DEPLOY_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
# shellcheck source=common.sh
|
|
source "$WM_DEPLOY_DIR/scripts/common.sh"
|
|
wm_load_env
|
|
wm_assert_data_mount
|
|
|
|
if [[ "$(id -u)" -ne 0 ]]; then
|
|
wm_die "Dieses Skript muss als root ausgeführt werden."
|
|
fi
|
|
|
|
install -d -m 0755 \
|
|
"$WATERMAPS_DATA_DIR/geofabrik" \
|
|
"$WATERMAPS_DATA_DIR/local" \
|
|
"$WATERMAPS_DATA_DIR/certbot/www" \
|
|
"$WATERMAPS_DATA_DIR/certbot/letsencrypt" \
|
|
"$WATERMAPS_RUNTIME_DIR/nginx/conf.d" \
|
|
"$WATERMAPS_RUNTIME_DIR/locks"
|
|
|
|
wm_acquire_route_lock ||
|
|
wm_die "Deployment abgebrochen, weil gerade Routingdaten aktualisiert werden."
|
|
|
|
if [[ ! -f "$WATERMAPS_RUNTIME_DIR/nginx/conf.d/default.conf" ]]; then
|
|
install -m 0644 \
|
|
"$WM_DEPLOY_DIR/nginx/bootstrap.conf" \
|
|
"$WATERMAPS_RUNTIME_DIR/nginx/conf.d/default.conf"
|
|
fi
|
|
|
|
wm_log "Anwendungsimage wird gebaut."
|
|
wm_compose build watermaps
|
|
wm_compose up --detach --remove-orphans watermaps nginx
|
|
|
|
wm_wait_for_health watermaps 240
|
|
wm_wait_for_health nginx 120
|
|
|
|
route_rebuild_required=false
|
|
update_args=()
|
|
if [[ "${WATERMAPS_REBUILD_ROUTE_DATA:-false}" == "true" ]]; then
|
|
route_rebuild_required=true
|
|
update_args+=(--force)
|
|
elif ! wm_route_data_ready; then
|
|
route_rebuild_required=true
|
|
fi
|
|
|
|
if [[ "$route_rebuild_required" == "true" ]]; then
|
|
wm_log "Deutschland- und Niederlande-Routingdaten werden sicher vorbereitet."
|
|
WATERMAPS_ROUTE_LOCK_HELD=true \
|
|
"$WM_DEPLOY_DIR/scripts/update-route-data.sh" "${update_args[@]}"
|
|
fi
|
|
|
|
wm_assert_route_data
|
|
wm_wait_for_health watermaps 240
|
|
wm_smoke_test_route
|
|
|
|
wm_log "Deployment ist bereit. Vor dem Livegang liefert Port 80 nur ACME-Challenges und ansonsten HTTP 404."
|