Skip to content

Incompatibility with Nextcloud Recognize #2482

@eibex

Description

@eibex

Hi,

As I have mentioned in the past year in this issue nextcloud/recognize#1096 (please disregard the title, I am using the Debian image, not the Alpine image), there is an issue for which Recognize (a Nextcloud "featured"/"official" app) does not work with the Docker image because it uses Node.js.

Node.js uses the uv_os_homedir function to get the HOME environment variable (for whatever reason) to install ffmpeg (which is otherwise installed just fine with Memories, other apps or simply with apt-get).

This is a "recurring" issue within Docker containers as seen in puppeteer/puppeteer#9230.

I tried setting the HOME variable forcibly when launching docker to a dummy /home/nc-user directory to no avail (even tried creating a user with useradd -m nc-user as suggested in the issue above). Do you have any suggestions in getting this to work and/or potential fixes for all users of this image?

Below the logs for one of the three errors raised (this is the most relevant one):

[recognize] Error: Failed to install ffmpeg: os.js:68
      throw new ERR_SYSTEM_ERROR(ctx);
      ^

SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_os_homedir returned ENOENT (no such file or directory)
    at Object.<anonymous> (/var/www/html/custom_apps/recognize/node_modules/env-paths/index.js:5:20)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:93:18)
    at Object.<anonymous> (/var/www/html/custom_apps/recognize/node_modules/ffmpeg-static/install.js:7:18)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) {
  code: 'ERR_SYSTEM_ERROR',
  info: {
    errno: -2,
    code: 'ENOENT',
    message: 'no such file or directory',
    syscall: 'uv_os_homedir'
  },
  errno: [Getter/Setter],
  syscall: [Getter/Setter]
}
	POST /settings/apps/enable
	from xxx

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions