Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLib + Docker + Ubuntu 24.04 + NodeJS 20


Ver Solução Respondido por EDSON DEUCHER,

Recommended Posts

  • Solution
Postado (editado)

Bom dia pessoal. Estou postando apenas para deixar documentado.

Estava nessa jornada de fazer funcionar minha aplicação no Docker. Passei por quase todos os problemas postados aqui no fórum kkkkkkkk

Porém teve um que quase me fez desistir, o "network subsystem is unusable" ao fazer qualquer comunicação com o SEFAZ. Segui todas as sugestões feitas no fórum, como copiar os .so junto da aplicação, fazer downgrade ou upgrade na versão do OpenSSL, etc., mas sem êxito.

Neste momento eu estava usando o Ubuntu 20.04, porque haviam pessoas que fizeram funcionar nele, e o NodeJS 18. Não tinha como eu usar o NodeJS 12, porque meu código já não roda mais nesta versão, e não estava usando o NodeJS 20 porque tinha um package que só estava adapatado até o 18. 

Depois de muito bater cabeça, não consegui fazer funcionar com essas configurações. Aí pensei, quer saber, vou botar o Ubuntu 24.04, o NodeJS 20, tirar essa package que depende da versão 18 e testar assim para ver. Deu certo! Finalmente pude ser feliz kkkkkkk

Vou colocar aqui o Dockerfile, mas não como anexo, pq teve vários posts que não consegui baixar.

FROM sitespeedio/node:ubuntu-24-04-nodejs-20.15.1
 
ENV NODE_ENV=production
ENV DISPLAY=:99
 
WORKDIR /usr/src/app
 
# Instalando as dependências de build para os packages da aplicação
RUN apt update && apt install -y --no-install-recommends g++ make cmake python3
 
# Instalando dependências do ACBrLib
RUN echo "deb http://deb.debian.org/debian buster main contrib\n" >> /etc/apt/sources.list && \
    apt install -y --no-install-recommends xvfb xauth
 
RUN echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections && \
    apt install -y perl ttf-mscorefonts-installer openssl libxml2 libgtk2.0-0 && \
    ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/libxml2.so
 
# Instalando os packages da aplicação
RUN --mount=type=bind,source=package.json,target=package.json \
    --mount=type=cache,target=/root/.npm \
    npm i --omit=dev
 
# Copiando os arquivos da aplicação para a imagem
COPY . .
 
# Esse openssl.cnf está alterado para aceitar legacy algorithms, conforme especificado num post do fórum do ACBr.
# No windows é usado o legacy.dll
COPY openssl.cnf /usr/lib/ssl/openssl.cnf
 
# Criando usuário genérico para rodar a aplicação
RUN adduser gpsfac
 
# Marcando o usuário como dono da pasta da aplicação
RUN chown -R gpsfac /usr/src/app
 
# Rodando a aplicação como non-root user.
USER gpsfac
 
EXPOSE 8050
 
ENTRYPOINT ["bash", "/usr/src/app/run.sh"]
 
# run.sh
# Xvfb :99 -screen 0 1280x1024x24 -ac +extension GLX +render -nolisten tcp -nolisten unix &> /usr/src/app/xvfb_warning_dump.txt & \
# node server_bundle.js
Editado por EDSON DEUCHER
Postei sem querer, ainda faltava adicionar o script run.sh
  • Curtir 3
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...