Расширенный набор «npm eacces, в котором отказано в разрешении mkdir»

В соответствии с шагами, описанными в документации Superset, при использовании метода Docker для инициализации среды разработки возникает следующая ошибка.

Уже пытались использовать Node Version Manager для установки npm, но ошибка по-прежнему сохраняется.

superset_1 | npm ERR! path /home/superset/superset/assets/node_modules superset_1 | npm ERR! code EACCES superset_1 | npm ERR! errno -13 superset_1 | npm ERR! syscall mkdir superset_1 | npm ERR! Error: EACCES: permission denied, mkdir '/home/superset/superset/assets/node_modules' superset_1 | npm ERR! { [Error: EACCES: permission denied, mkdir '/home/superset/superset/assets/node_modules'] superset_1 | npm ERR! cause: superset_1 | npm ERR! { Error: EACCES: permission denied, mkdir '/home/superset/superset/assets/node_modules' superset_1 | npm ERR! type: 'OperationalError', superset_1 | npm ERR! '$error': '$error', superset_1 | npm ERR! cause: superset_1 | npm ERR! { errno: -13, superset_1 | npm ERR! code: 'EACCES', superset_1 | npm ERR! syscall: 'mkdir', superset_1 | npm ERR! path: '/home/superset/superset/assets/node_modules' }, superset_1 | npm ERR! isOperational: true, superset_1 | npm ERR! errno: -13, superset_1 | npm ERR! code: 'EACCES', superset_1 | npm ERR! syscall: 'mkdir', superset_1 | npm ERR! path: '/home/superset/superset/assets/node_modules' }, superset_1 | npm ERR! isOperational: true, superset_1 | npm ERR! stack: superset_1 | npm ERR! 'Error: EACCES: permission denied, mkdir \'/home/superset/superset/assets/node_modules\'', superset_1 | npm ERR! type: 'OperationalError', superset_1 | npm ERR! '$error': '$error', superset_1 | npm ERR! errno: -13, superset_1 | npm ERR! code: 'EACCES', superset_1 | npm ERR! syscall: 'mkdir', superset_1 | npm ERR! path: '/home/superset/superset/assets/node_modules' } superset_1 | npm ERR! superset_1 | npm ERR! The operation was rejected by your operating system. superset_1 | npm ERR! It is likely you do not have the permissions to access this file as the current user superset_1 | npm ERR! superset_1 | npm ERR! If you believe this might be a permissions issue, please double-check the superset_1 | npm ERR! permissions of the file and its containing directories, or try running superset_1 | npm ERR! the command again as root/Administrator (though this is not recommended). superset_1 | superset_1 | npm ERR! A complete log of this run can be found in: superset_1 | npm ERR! /home/superset/.npm/_logs/2019-01-05T05_09_30_276Z-debug.log superset_superset_1 exited with code 243


person Jai    schedule 05.01.2019    source источник
comment
попробуй с sudo   -  person westdabestdb    schedule 05.01.2019
comment
@westdabestdb Пробовал то же самое, а также в качестве пользователя root, но безуспешно.   -  person Jai    schedule 05.01.2019


Ответы (1)


Была такая же проблема. Я исправил это, удалив команду

USER superset    

из Dockerfile (строка 37).

Затем в файле docker-entrypoint.sh я добавил

su - superset

чтобы не было потери функциональности, но я не уверен, что это необходимо. Мой файл docker-entrypoint.sh выглядит так:

celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair &
# needed by superset runserver
(cd superset/assets/ && npm ci && npm run sync-backend)
(cd superset/assets/ && npm run dev) &
su - superset &
FLASK_APP=superset:app flask run -p 8088 --with-threads --reload --debugger -- 
host=0.0.0.0
person thisserand    schedule 11.01.2019