2
respostas

npm ERR

Após rodar o docker-compose up --build apareceram estas mensagens

consumer-academico-1; web-mkt-1 e front-1 não consegue iniciar

web-mkt-1 | npm ERR! code SELF_SIGNED_CERT_IN_CHAIN web-mkt-1 | npm ERR! errno SELF_SIGNED_CERT_IN_CHAIN web-mkt-1 | npm ERR! request to https://registry.npmjs.org/yn/-/yn-3.1.1.tgz failed, reason: self signed certificate in certificate chain web-mkt-1 | web-mkt-1 | npm ERR! A complete log of this run can be found in: web-mkt-1 | npm ERR! /root/.npm/_logs/2024-08-13T19_18_55_021Z-debug-0.log web-mkt-1 | web-mkt-1 | > marketing@1.0.0 start web-mkt-1 | > nodemon index.ts web-mkt-1 | web-mkt-1 | sh: 1: nodemon: not found web-mkt-1 exited with code 127 front-1 | npm ERR! code SELF_SIGNED_CERT_IN_CHAIN front-1 | npm ERR! errno SELF_SIGNED_CERT_IN_CHAIN front-1 | npm ERR! request to https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz failed, reason: self signed certificate in certificate chain front-1 | front-1 | npm ERR! A complete log of this run can be found in: front-1 | npm ERR! /root/.npm/_logs/2024-08-13T19_18_37_826Z-debug-0.log front-1 | front-1 | > front-end@0.0.0 start front-1 | > ng serve --host=0.0.0.0 --port 4200 front-1 | front-1 | sh: 1: ng: not found front-1 exited with code 127

2 respostas

Olá!

Parece que você está enfrentando dois problemas principais ao rodar o docker-compose up --build:

  1. Erro de certificado autoassinado (SELF_SIGNED_CERT_IN_CHAIN): Isso ocorre porque o npm está tentando acessar pacotes através de um certificado que não é confiável.

  2. Comandos não encontrados (nodemon e ng): Isso indica que essas ferramentas não estão instaladas ou disponíveis no PATH dentro dos contêineres.

Vamos resolver cada um deles:

1. Erro de certificado autoassinado

Para resolver o problema do certificado autoassinado, você pode configurar o npm para ignorar certificados autoassinados. Adicione a seguinte linha ao seu Dockerfile ou ao comando de inicialização do contêiner:

RUN npm config set strict-ssl false

Isso fará com que o npm ignore os erros de certificado autoassinado.

2. Comandos não encontrados

Para garantir que nodemon e ng estejam disponíveis, você precisa instalá-los globalmente ou garantir que estejam no PATH. Adicione as linhas de instalação ao seu Dockerfile:

RUN npm install -g nodemon
RUN npm install -g @angular/cli

Aqui está um exemplo de como seu Dockerfile pode ficar:

FROM node:14

# Defina o diretório de trabalho
WORKDIR /app

# Copie o package.json e package-lock.json
COPY package*.json ./

# Instale as dependências
RUN npm install

# Instale nodemon e Angular CLI globalmente
RUN npm install -g nodemon
RUN npm install -g @angular/cli

# Ignore os erros de certificado autoassinado
RUN npm config set strict-ssl false

# Copie o restante do código da aplicação
COPY . .

# Exponha a porta que a aplicação irá rodar
EXPOSE 4200

# Comando para iniciar a aplicação
CMD ["npm", "start"]

Depois de ajustar seu Dockerfile, não se esqueça de reconstruir suas imagens com o comando:

docker-compose up --build

Espero ter ajudado e bons estudos!

Prezado Lucas

os únicos arquivos Dockerfile encontram-se nas pastas academico-php e pasta financeiro-php, ambos com o mesmo conteúdo.

conteúdo do arquivo

FROM php:8.0.14

RUN apt-get update && apt-get install -y libzip-dev libpq-dev

RUN docker-php-ext-install zip RUN docker-php-ext-install sockets RUN docker-php-ext-install pdo_pgsql

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

Eu tenho que criar um novo arquivo Dockerfile? Em que pasta colocar?