1
resposta

erro ao fazer o build do allbooks

h67989@RES-1994-270786:~/curso-react-alurabooks$ docker build -t g10/allbooks:1.1 . [+] Building 1107.0s (9/10) docker:default => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 129B 0.0s => [internal] load metadata for docker.io/library/node:20 13.8s => [auth] library/node:pull token for registry-1.docker.io 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [1/5] FROM docker.io/library/node:20@sha256:48db4f6ea21d134be744207225753a1730c4bc1b4cdf836d44511c36bf0e34d7 105.1s => => resolve docker.io/library/node:20@sha256:48db4f6ea21d134be744207225753a1730c4bc1b4cdf836d44511c36bf0e34d7 0.0s ......................... => [internal] load build context 0.2s => => transferring context: 13.49MB 0.1s => [2/5] WORKDIR /app 0.4s => [3/5] COPY package.json . 0.1s => ERROR [4/5] RUN npm install 987.3s

[4/5] RUN npm install: 987.3 npm error code SELF_SIGNED_CERT_IN_CHAIN 987.3 npm error errno SELF_SIGNED_CERT_IN_CHAIN 987.3 npm error request to https://registry.npmjs.org/@testing-library%2fjest-dom failed, reason: self-signed certificate in certificate chain 987.3 npm error A complete log of this run can be found in: /root/.npm/_logs/2024-09-11T20_33_29_462Z-debug-0.log


1 warning found (use docker --debug to expand): - JSONArgsRecommended: JSON arguments recommended for entrypoint to prevent unintended behavior related to OS signals (line 6) Dockerfile:4

2 | workdir /app 3 | copy package.json . 4 | >>> run npm install 5 | copy . . 6 | entrypoint npm start

ERROR: failed to solve: process "/bin/sh -c npm install" did not complete successfully: exit code: 1

1 resposta

Oi! Tudo bem?

Pelo que você descreveu, o erro que você está enfrentando é devido a um certificado autoassinado na cadeia de certificados durante a execução do comando npm install. Esse erro é comum em ambientes onde há proxies ou firewalls que inspecionam o tráfego HTTPS e substituem os certificados.

Para resolver esse problema, você pode configurar o npm para ignorar certificados autoassinados. Uma maneira de fazer isso é adicionar a configuração strict-ssl=false antes de executar o comando npm install. Você pode fazer isso diretamente no seu Dockerfile. Aqui está um exemplo de como modificar o seu Dockerfile:

FROM node:20
WORKDIR /app
COPY package.json .
RUN npm config set strict-ssl false
RUN npm install
COPY . .
ENTRYPOINT ["npm", "start"]

Com essa modificação, o comando npm config set strict-ssl false será executado antes do npm install, configurando o npm para ignorar certificados autoassinados.

Depois de fazer essa alteração, tente novamente construir a imagem com o comando:

docker build -t g10/allbooks:1.1 .

Espero ter ajudado e bons estudos!