Não estou conseguindo executar meu projeto webapp em uma instalação nova do Arch Linux. Ele usa docker e docker-compose.yaml para criar DB, servidor nginx etc. Este projeto já está sendo executado em vários PCs e ambientes de nuvem (por alguns anos), então estou pensando se talvez algum novo pacote esteja quebrando o processo de construção dos contêineres.
Meu dockerfile instala alguns pacotes usando APK, mas falha sempre que tento usar node.js. Originalmente, ele tinha um RUN npm install
comando, e para ter certeza de que node era o problema, adicionei um RUN node -v
comando logo após instalar o node. Ambos os comandos falham com a mesma mensagem exata:
=> ERROR [app 6/24] RUN node -v 0.2s
------
> [app 6/24] RUN node -v:
0.197 Error relocating /usr/bin/node: sqlite3session_attach: symbol not found
0.197 Error relocating /usr/bin/node: sqlite3changeset_apply: symbol not found
0.197 Error relocating /usr/bin/node: sqlite3session_create: symbol not found
0.197 Error relocating /usr/bin/node: sqlite3session_changeset: symbol not found
0.198 Error relocating /usr/bin/node: sqlite3session_patchset: symbol not found
0.198 Error relocating /usr/bin/node: sqlite3session_delete: symbol not found
------
failed to solve: process "/bin/sh -c node -v" did not complete successfully: exit code: 127
Node e npm são instalados no início do arquivo:
FROM php:8.2-fpm-alpine
COPY composer.lock composer.json /var/www/html/
WORKDIR /var/www/html/
RUN apk update
RUN apk add nodejs npm
RUN node -v
(...)
Como posso depurar essa situação? Tentei docker compose up --build
várias pesquisas no Google por essa mensagem de erro, mas não tive sorte.
Acontece que essa categoria de mensagem de erro pode indicar que os pacotes no seu sistema podem estar em versões incompatíveis, talvez fora de sincronia. A execução
apk upgrade
corrigiu o erro para meu ambiente.Obrigado ao autor anônimo do stackoverflow que escreveu a dica e depois excluiu o comentário.