Erro 500 ao subir aplicação Docker + Node.js

Olá,
Eu estou tentando subir uma aplicação em Node.js que está no meu github mas ele gera um erro 503 e disponibiliza esse log de erro:

Mar 25 09:32:22   npm ERR! /usr/src/app/.npm/_logs/2020-03-25T12_32_22_397Z-debug.log
Mar 25 09:32:22   npm ERR! A complete log of this run can be found in:
Mar 25 09:32:22  
Mar 25 09:32:22   npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Mar 25 09:32:22   npm ERR! Failed at the matrix@ start script.
Mar 25 09:32:22   npm ERR!
Mar 25 09:32:22   npm ERR! spawn ENOENT
Mar 25 09:32:22   npm ERR! matrix@ start: `lerna run start --stream`
Mar 25 09:32:22   npm ERR! errno ENOENT
Mar 25 09:32:22   npm ERR! file sh
Mar 25 09:32:22   npm ERR! syscall spawn
Mar 25 09:32:22   npm ERR! code ELIFECYCLE
Mar 25 09:32:22   sh: 1: lerna: not found
Mar 25 09:32:22  
Mar 25 09:32:22   > lerna run start --stream
Mar 25 09:32:22   > matrix@ start /usr/src/app
Mar 25 09:32:22  
Mar 25 09:32:17   npm ERR! /usr/src/app/.npm/_logs/2020-03-25T12_32_17_258Z-debug.log
Mar 25 09:32:17   npm ERR! A complete log of this run can be found in:
Mar 25 09:32:17  
Mar 25 09:32:17   npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Mar 25 09:32:17   npm ERR! Failed at the matrix@ start script.
Mar 25 09:32:17   npm ERR!
Mar 25 09:32:17   npm ERR! spawn ENOENT
Mar 25 09:32:17   npm ERR! matrix@ start: `lerna run start --stream`
Mar 25 09:32:17   npm ERR! errno ENOENT
Mar 25 09:32:17   npm ERR! file sh
Mar 25 09:32:17   npm ERR! syscall spawn
Mar 25 09:32:17   npm ERR! code ELIFECYCLE
Mar 25 09:32:17   sh: 1: lerna: not found
Mar 25 09:32:17  
Mar 25 09:32:17   > lerna run start --stream
Mar 25 09:32:17   > matrix@ start /usr/src/app
Mar 25 09:32:17

No local ele funciona normalmente…

Olá, @lougans! Tudo bem?
lerna seria um pacote do NPM que deveria ser instalado globalmente, correto?
Se esse for o caso, temo que pode ser que ele funciona APENAS se for instalado globalmente :grimacing:

Permita-me explicar melhor
Na nossa hospedagem, sudo não está disponível. Então pacotes do NPM não tem a permissão necessária para registrar seus comandos globalmente.
Às vezes os pacotes são mais flexíveis e permitem que esses comandos que normalmente seriam registrados globalmente de ficarem apenas disponíveis dentro dos scripts do package.json.

É por isso que alguns pacotes como o do Angular podem ser usados para buildar a aplicação dentro do script postinstall mas não diretamente pela linha de comando. Outros pacotes como nodemon, por exemplo, exigem que seja instalado globalmente. Logo, não é possível usá-lo.
Claro, nesse caso o nodemon seria redundante pois o próprio docker faz o papel de reiniciar a aplicação caso dê algum problema.

Onde eu estou querendo chegar é que é necessário verificar se esse pacote é tolerante em relação a falta de sudo. É possível também que no seu caso ele apenas não tenha sido instalado corretamente, pois o deploy via sincronização com o GitHub não instala as dependências automaticamente como o deploy via Git Remote. Talvez seja interessante rodar o npm install via SSH dentro do seu container e testar novamente. Você provavelmente precisará ver esse meu outro post se estiver interessado em tentar fazer isso:

Se após esse teste o erro permanecer, temo que não será possível usar esse pacote. Recomendo você usar da maneira convencional e que é oficialmente suportada, que seria usar apenas o node suaaplicacao.js dentro do script start