linuxserver / docker-unifi-network-application

GNU General Public License v3.0
553 stars 41 forks source link

MongoDB not supported by CPU #4

Closed ScumbagSteve closed 9 months ago

ScumbagSteve commented 9 months ago

Is this a new feature request?

Wanted change

I tried switching to Unifi Network Application, and tried to set up MongoDB. Unfortunately at bootup I get the message, that MongoDB is not supported by my CPU:

WARNING: MongoDB 5.0+ requires a CPU with AVX support, and your current system does not appear to have that!
  see https://jira.mongodb.org/browse/SERVER-54407
  see also https://www.mongodb.com/community/forums/t/mongodb-5-0-cpu-intel-g4650-compatibility/116610/2
  see also https://github.com/docker-library/mongo/issues/485#issuecomment-891991814

Are there any other way to use the new controller docker?

My server is around 3-4 years old. I think there must be more people unable to run MongoDB. Maybe consider supporting other databases.

Reason for change

I can't be the only one with this issue.

Proposed code change

No response

github-actions[bot] commented 9 months ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

aptalca commented 9 months ago

You're not the only one but it is what it is. It's a mongodb restriction and the links provided in the log entry explain what it is. Nothing we can do.

5p4k commented 9 months ago

For anyone else encountering this issue on ARM (specifically I am running on a Raspberry Pi 4), the version 4.4.18 of MongoDB still runs and seems to be compatible with UniFi Network Application. The message on ARM is the following

WARNING: MongoDB requires ARMv8.2-A or higher, and your current system does not appear to implement any of the common features for that!
  applies to all versions ≥5.0, any of 4.4 ≥4.4.19
  see https://jira.mongodb.org/browse/SERVER-71772
  see https://jira.mongodb.org/browse/SERVER-55178
  see also https://en.wikichip.org/wiki/arm/armv8#ARMv8_Extensions_and_Processor_Features
  see also https://github.com/docker-library/mongo/issues/485#issuecomment-970864306

It seems that arm64v8/mongo:4.4.18 works fine. Here's my full docker compose for the stack (with omitted password and init-mongo.js):

version: "3"

services:
  db:
    # 4.4.18 is the last version that runs on RPi's ARM.
    # Also, we can't use more than 4.4 for Unifi
    image: arm64v8/mongo:4.4.18
    volumes:
      - unifi-db:/data/db
    secrets:
      - source: init-js
        target: /docker-entrypoint-initdb.d/init-mongo.js

  network-application:
    image: lscr.io/linuxserver/unifi-network-application:latest
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/Rome
      MONGO_USER: unifi
      MONGO_PASS: ${DB_PASSWORD}
      MONGO_HOST: db
      MONGO_PORT: 27017
      MONGO_DBNAME: unifi
      # Optional
      # MEM_LIMIT: 1024
      # MEM_STARTUP: 1024
    volumes:
      - unifi-data:/config
    ports:
      - 8443:8443
      - 3478:3478/udp
      - 10001:10001/udp
      - 8080:8080
      # Optional
      - 1900:1900/udp
      - 8843:8843
      - 8880:8880
      - 6789:6789
      - 5514:5514/udp

volumes:
  unifi-data: {}
  unifi-db: {}

secrets:
  init-js:
    file: "${INIT_MONGO_JS}"
ScumbagSteve commented 5 months ago

On my X64 machine I used docker tag mongo:4.4.6 to make it work in the end. This seems to be the last version without required AVX support as far as I heard.

poseidogithub commented 3 months ago

For anyone else encountering this issue on ARM (specifically I am running on a Raspberry Pi 4), the version 4.4.18 of MongoDB still runs and seems to be compatible with UniFi Network Application. The message on ARM is the following

WARNING: MongoDB requires ARMv8.2-A or higher, and your current system does not appear to implement any of the common features for that!
  applies to all versions ≥5.0, any of 4.4 ≥4.4.19
  see https://jira.mongodb.org/browse/SERVER-71772
  see https://jira.mongodb.org/browse/SERVER-55178
  see also https://en.wikichip.org/wiki/arm/armv8#ARMv8_Extensions_and_Processor_Features
  see also https://github.com/docker-library/mongo/issues/485#issuecomment-970864306

It seems that arm64v8/mongo:4.4.18 works fine. Here's my full docker compose for the stack (with omitted password and init-mongo.js):

version: "3"

services:
  db:
    # 4.4.18 is the last version that runs on RPi's ARM.
    # Also, we can't use more than 4.4 for Unifi
    image: arm64v8/mongo:4.4.18
    volumes:
      - unifi-db:/data/db
    secrets:
      - source: init-js
        target: /docker-entrypoint-initdb.d/init-mongo.js

  network-application:
    image: lscr.io/linuxserver/unifi-network-application:latest
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/Rome
      MONGO_USER: unifi
      MONGO_PASS: ${DB_PASSWORD}
      MONGO_HOST: db
      MONGO_PORT: 27017
      MONGO_DBNAME: unifi
      # Optional
      # MEM_LIMIT: 1024
      # MEM_STARTUP: 1024
    volumes:
      - unifi-data:/config
    ports:
      - 8443:8443
      - 3478:3478/udp
      - 10001:10001/udp
      - 8080:8080
      # Optional
      - 1900:1900/udp
      - 8843:8843
      - 8880:8880
      - 6789:6789
      - 5514:5514/udp

volumes:
  unifi-data: {}
  unifi-db: {}

secrets:
  init-js:
    file: "${INIT_MONGO_JS}"

WOW thanks,m this worked on my Raspberry Pi 4 2gb running Raspberry Pi OS 64 bit,

ramonpaolo commented 1 month ago

The MongoDB now can be run in the Raspberry Pi 5(with 4GB or 8GB), because the processor of Raspberry Pi 5 is the ARM Cortex-76, that are the ArmV8.2 that supports the AVX