Назад | Перейти на главную страницу

Azure Linux WebApp - deploy.sh не может установить пряжу глобально

Я пытаюсь развернуть приложение React в веб-приложении Azure Linux с помощью развертывания kudu. У меня довольно стандартный сценарий deploy.sh за одним исключением. Я хочу установить yarn менеджер пакетов через npm. При попытке npm install yarn -g развертывание не удается. Глядя на журналы, это похоже на проблему с разрешениями.

npm WARN checkPermissions Missing write access to /opt/nodejs/6.11.0/lib/node_modules

Есть ли способ установить глобальные модули npm в веб-приложениях azure linux?

Вы можете увидеть журнал здесь:

Command: bash deploy.sh
Installing Yarn
npm WARN checkPermissions Missing write access to /opt/nodejs/6.11.0/lib/node_modules
/opt/nodejs/6.11.0/lib
npm ERR! Linux 4.13.0-1011-azure
`-- yarn@1.6.0 
npm ERR! argv "/opt/nodejs/6.11.0/bin/node" "/usr/bin/node_modules/npm/bin/npm-cli.js" "install" "yarn" "-g"

npm ERR! node v6.11.0
An error has occurred during web site deployment.
npm ERR! npm  v3.10.10
installing yarn dependency failed
npm ERR! path /opt/nodejs/6.11.0/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/opt/nodejs/6.11.0/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!  { Error: EACCES: permission denied, access '/opt/nodejs/6.11.0/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/opt/nodejs/6.11.0/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

Вы можете следовать приведенным здесь инструкциям, чтобы использовать куду-пряжу: https://github.com/stefangordon/kudu-yarn

Для этого необходимо скопировать пару файлов в свой проект, которые будут заархивированы и отправлены в Azure. Находясь в службе приложений, он будет использовать Kudu .deployment файл и запустить deploy.cmd что они предоставили.

Если возможно, вы должны запустить свой сценарий с помощью sudo. Это решит проблему с разрешениями