O Azure Linux WebApp - deploy.sh não pode instalar o fio globalmente

1

Estou tentando implantar um aplicativo React em uma aplicação Web linux do Azure usando a implantação do kudu. Eu tenho um script deploy.sh bastante padrão com uma exceção. Desejo instalar o gerenciador de pacotes yarn via npm . Ao tentar npm install yarn -g , a implementação falha. Olhando para os logs, parece um problema de permissões.

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

Existe uma maneira de instalar módulos globais do npm em aplicativos web do Linux?

Você pode ver o log aqui:

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
'-- [email protected] 
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.
    
por Zuriel Barron 26.04.2018 / 22:06

2 respostas

0

Você deve executar seu script com o sudo, se possível. Isso superará o problema de permissões

    
por 26.04.2018 / 23:11
0

Você pode seguir as instruções aqui para usar o kudu-yarn: link

Ele exige que você copie alguns arquivos em seu projeto que serão compactados e enviados para o Azure. Quando estiver no Serviço de Aplicativo, ele utilizará o arquivo Kudu .deployment e executará deploy.cmd que ele forneceu.

    
por 13.10.2018 / 09:38