Fix docker-compose patching for bitnami/mongodb migration

Simplified grep patterns and fixed volume path replacement.
The patch now correctly updates both host and container paths
to match the official mongo image template format.
develop
Dominik Dzienia 3 weeks ago
parent 20e70b7efa
commit d2b98b1451

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
### version: 1.10.0 ### version: 1.10.1
# ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.# # ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.#
# Nightscout Mikr.us setup script # # Nightscout Mikr.us setup script #
@ -54,7 +54,7 @@ DISK_LOW_MAIL=5184000 # == 60 days in seconds
DISK_CRITICAL_WARNING=104857600 # == 100 MiB DISK_CRITICAL_WARNING=104857600 # == 100 MiB
DISK_CRITICAL_MAIL=604800 # == 7 days in seconds DISK_CRITICAL_MAIL=604800 # == 7 days in seconds
DOCKER_DOWN_MAIL=604800 # == 7 days in seconds DOCKER_DOWN_MAIL=604800 # == 7 days in seconds
SCRIPT_VERSION="1.10.0" #auto-update SCRIPT_VERSION="1.10.1" #auto-update
SCRIPT_BUILD_TIME="2026.01.04" #auto-update SCRIPT_BUILD_TIME="2026.01.04" #auto-update
#======================================= #=======================================
@ -756,19 +756,18 @@ patch_docker_compose() {
containers_running=1 containers_running=1
fi fi
# Check if mongodb image needs patching (bitnami/mongodb or incorrect format) # Check if mongodb image needs patching (bitnami/mongodb)
if grep -qE "image:\s*(bitnami/)?mongo(db)?" "$DOCKER_COMPOSE_FILE"; then if grep -q "bitnami/mongodb" "$DOCKER_COMPOSE_FILE"; then
ohai "Patching docker-compose.yml MongoDB image..." ohai "Patching docker-compose.yml MongoDB image..."
# Replace any bitnami/mongodb or incorrect mongo image with proper format # Replace bitnami/mongodb with official mongo image
sed -i -E 's|image:\s*"?bitnami/mongodb:.*"?|image: "mongo:${NS_MONGODB_TAG}"|g' "$DOCKER_COMPOSE_FILE" sed -i -E 's|image:\s*"*(bitnami/)?mongodb:.*"|image: "mongo:${NS_MONGODB_TAG}"|g' "$DOCKER_COMPOSE_FILE"
sed -i -E 's|image:\s*"?mongo:[^"]+"?|image: "mongo:${NS_MONGODB_TAG}"|g' "$DOCKER_COMPOSE_FILE"
sed -i -E 's|image:\s*"?mongodb:[^"]+"?|image: "mongo:${NS_MONGODB_TAG}"|g' "$DOCKER_COMPOSE_FILE"
patched=1 patched=1
fi fi
# Check if volume path needs patching (bitnami/mongodb -> data/db) # Check if volume path needs patching (bitnami/mongodb -> data/db)
if grep -q ":/bitnami/mongodb\"" "$DOCKER_COMPOSE_FILE"; then if grep -q "/bitnami/mongodb" "$DOCKER_COMPOSE_FILE"; then
ohai "Patching docker-compose.yml MongoDB volume path..." ohai "Patching docker-compose.yml MongoDB volume path..."
sed -i -E 's|:/bitnami/mongodb"?|:/data/db"|g' "$DOCKER_COMPOSE_FILE" # Replace both host path and container path for mongodb volume
sed -i -E 's|(\$\{NS_DATA_DIR\}/mongodb):/bitnami/mongodb"|\1/data/db:/data/db"|g' "$DOCKER_COMPOSE_FILE"
patched=1 patched=1
fi fi

@ -1,6 +1,6 @@
{ {
"name": "@dlvoy/ns-installer-mikrus", "name": "@dlvoy/ns-installer-mikrus",
"version": "1.10.0", "version": "1.10.1",
"description": "Nightscout installer for mikr.us VPS", "description": "Nightscout installer for mikr.us VPS",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

@ -740,19 +740,18 @@ patch_docker_compose() {
containers_running=1 containers_running=1
fi fi
# Check if mongodb image needs patching (bitnami/mongodb or incorrect format) # Check if mongodb image needs patching (bitnami/mongodb)
if grep -qE "image:\s*(bitnami/)?mongo(db)?" "$DOCKER_COMPOSE_FILE"; then if grep -q "bitnami/mongodb" "$DOCKER_COMPOSE_FILE"; then
ohai "Patching docker-compose.yml MongoDB image..." ohai "Patching docker-compose.yml MongoDB image..."
# Replace any bitnami/mongodb or incorrect mongo image with proper format # Replace bitnami/mongodb with official mongo image
sed -i -E 's|image:\s*"?bitnami/mongodb:.*"?|image: "mongo:${NS_MONGODB_TAG}"|g' "$DOCKER_COMPOSE_FILE" sed -i -E 's|image:\s*"*(bitnami/)?mongodb:.*"|image: "mongo:${NS_MONGODB_TAG}"|g' "$DOCKER_COMPOSE_FILE"
sed -i -E 's|image:\s*"?mongo:[^"]+"?|image: "mongo:${NS_MONGODB_TAG}"|g' "$DOCKER_COMPOSE_FILE"
sed -i -E 's|image:\s*"?mongodb:[^"]+"?|image: "mongo:${NS_MONGODB_TAG}"|g' "$DOCKER_COMPOSE_FILE"
patched=1 patched=1
fi fi
# Check if volume path needs patching (bitnami/mongodb -> data/db) # Check if volume path needs patching (bitnami/mongodb -> data/db)
if grep -q ":/bitnami/mongodb\"" "$DOCKER_COMPOSE_FILE"; then if grep -q "/bitnami/mongodb" "$DOCKER_COMPOSE_FILE"; then
ohai "Patching docker-compose.yml MongoDB volume path..." ohai "Patching docker-compose.yml MongoDB volume path..."
sed -i -E 's|:/bitnami/mongodb"?|:/data/db"|g' "$DOCKER_COMPOSE_FILE" # Replace both host path and container path for mongodb volume
sed -i -E 's|(\$\{NS_DATA_DIR\}/mongodb):/bitnami/mongodb"|\1/data/db:/data/db"|g' "$DOCKER_COMPOSE_FILE"
patched=1 patched=1
fi fi

@ -16,7 +16,7 @@ services:
environment: environment:
- MONGODB_EXTRA_FLAGS=--wiredTigerCacheSizeGB=0.4 - MONGODB_EXTRA_FLAGS=--wiredTigerCacheSizeGB=0.4
volumes: volumes:
- "${NS_DATA_DIR}/mongodb:/data/db" - "${NS_DATA_DIR}/mongodb/data/db:/data/db"
ports: ports:
- ${INTERNAL_MONGO_PORT}:27017 - ${INTERNAL_MONGO_PORT}:27017
networks: networks:

@ -1 +1 @@
2026-01-04T22:01:38.168Z 2026-01-04T22:28:46.096Z
Loading…
Cancel
Save