Browse Source

Try to fix Snap to not fork mongodb.

Thanks to xet7 !
Lauri Ojansivu 1 week ago
parent
commit
70ce70cf0e
1 changed files with 42 additions and 18 deletions
  1. 42 18
      snap-src/bin/mongodb-control

+ 42 - 18
snap-src/bin/mongodb-control

@@ -5,8 +5,21 @@
 # Supports MongoDB versions 3-8 with automatic binary selection
 
 # get wekan/mongo settings
+echo "Reading snap settings..."
 source $SNAP/bin/wekan-read-settings
 
+# Debug: Show what we got from snap settings
+echo "Snap settings loaded:"
+echo "  MONGODB_BIND_IP: '${MONGODB_BIND_IP}'"
+echo "  MONGODB_PORT: '${MONGODB_PORT}'"
+echo "  MONGODB_BIND_UNIX_SOCKET: '${MONGODB_BIND_UNIX_SOCKET}'"
+
+# Debug: Check snap settings directly
+echo "Direct snap settings check:"
+echo "  mongodb-port: $(snapctl get mongodb-port 2>/dev/null || echo 'not set')"
+echo "  mongodb-bind-ip: $(snapctl get mongodb-bind-ip 2>/dev/null || echo 'not set')"
+echo "  mongodb-bind-unix-socket: $(snapctl get mongodb-bind-unix-socket 2>/dev/null || echo 'not set')"
+
 if [ "true" == "${DISABLE_MONGODB}" ]; then
     echo "mongodb is disabled. Stop service"
     snapctl stop --disable ${SNAP_NAME}.mongodb
@@ -218,6 +231,29 @@ fi
 # Set MongoDB log file path
 export MONGO_LOG_FILE="${SNAP_COMMON}/mongodb.log"
 
+# Build bind options from snap settings
+BIND_OPTIONS=""
+if [ "nill" != "${MONGODB_BIND_UNIX_SOCKET}" ] && [ -n "${MONGODB_BIND_UNIX_SOCKET}" ]; then
+    BIND_OPTIONS+=" --unixSocketPrefix ${MONGODB_BIND_UNIX_SOCKET}"
+fi
+if [ -n "${MONGODB_BIND_IP}" ]; then
+    BIND_OPTIONS+=" --bind_ip ${MONGODB_BIND_IP}"
+else
+    BIND_OPTIONS+=" --bind_ip 127.0.0.1"
+fi
+if [ -n "${MONGODB_PORT}" ]; then
+    BIND_OPTIONS+=" --port ${MONGODB_PORT}"
+else
+    BIND_OPTIONS+=" --port 27019"
+fi
+
+# Debug: Show what settings we're using
+echo "MongoDB settings:"
+echo "  MONGODB_BIND_IP: ${MONGODB_BIND_IP:-127.0.0.1}"
+echo "  MONGODB_PORT: ${MONGODB_PORT:-27017}"
+echo "  MONGODB_BIND_UNIX_SOCKET: ${MONGODB_BIND_UNIX_SOCKET:-not set}"
+echo "  BIND_OPTIONS: ${BIND_OPTIONS}"
+
 # Start MongoDB with appropriate version
 echo "Starting MongoDB with detected version..."
 log_version_detection "Starting MongoDB server"
@@ -232,9 +268,7 @@ case "$ACTIVE_VERSION" in
         exec /snap/${SNAP_NAME}/current/migratemongo/bin/mongod \
             --dbpath="$MONGO_DATA_DIR" \
             --logpath="$MONGO_LOG_FILE" \
-            --logappend \
-            --bind_ip=127.0.0.1 \
-            --port=27017
+            --logappend $BIND_OPTIONS
         ;;
     "4")
         echo "Starting MongoDB 4.x server..."
@@ -242,9 +276,7 @@ case "$ACTIVE_VERSION" in
         exec /snap/${SNAP_NAME}/current/mongodb4/bin/mongod \
             --dbpath="$MONGO_DATA_DIR" \
             --logpath="$MONGO_LOG_FILE" \
-            --logappend \
-            --bind_ip=127.0.0.1 \
-            --port=27017
+            --logappend $BIND_OPTIONS
         ;;
     "5")
         echo "Starting MongoDB 5.x server..."
@@ -252,9 +284,7 @@ case "$ACTIVE_VERSION" in
         exec /snap/${SNAP_NAME}/current/mongodb5/bin/mongod \
             --dbpath="$MONGO_DATA_DIR" \
             --logpath="$MONGO_LOG_FILE" \
-            --logappend \
-            --bind_ip=127.0.0.1 \
-            --port=27017
+            --logappend $BIND_OPTIONS
         ;;
     "6")
         echo "Starting MongoDB 6.x server..."
@@ -262,9 +292,7 @@ case "$ACTIVE_VERSION" in
         exec /snap/${SNAP_NAME}/current/mongodb6/bin/mongod \
             --dbpath="$MONGO_DATA_DIR" \
             --logpath="$MONGO_LOG_FILE" \
-            --logappend \
-            --bind_ip=127.0.0.1 \
-            --port=27017
+            --logappend $BIND_OPTIONS
         ;;
     "7"|*)
         echo "Starting MongoDB 7.x server..."
@@ -272,9 +300,7 @@ case "$ACTIVE_VERSION" in
         exec /snap/${SNAP_NAME}/current/bin/mongod \
             --dbpath="$MONGO_DATA_DIR" \
             --logpath="$MONGO_LOG_FILE" \
-            --logappend \
-            --bind_ip=127.0.0.1 \
-            --port=27017
+            --logappend $BIND_OPTIONS
         ;;
     "8")
         echo "Starting MongoDB 8.x server..."
@@ -282,8 +308,6 @@ case "$ACTIVE_VERSION" in
         exec /snap/${SNAP_NAME}/current/mongodb8/bin/mongod \
             --dbpath="$MONGO_DATA_DIR" \
             --logpath="$MONGO_LOG_FILE" \
-            --logappend \
-            --bind_ip=127.0.0.1 \
-            --port=27017
+            --logappend $BIND_OPTIONS
         ;;
 esac