Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

docker-compose build falha ao fazer o build do container de Node

Ao usar o exemplod e docker-compose.yml da Aula 6 - Atividade 4 e rodar o docker-compose.yml, o seuginte erro é retornado:

# docker-compose build
mongodb uses an image, skipping
Building node2
Step 1/8 : FROM node:latest
latest: Pulling from library/node
22dbe790f715: Pull complete
0250231711a0: Pull complete
6fba9447437b: Pull complete
c2b4d327b352: Pull complete
270e1baa5299: Pull complete
08ba2f9dd763: Pull complete
edf54285ab13: Pull complete
4d751c169397: Pull complete
Digest: sha256:5690c41712d8b1b47d1fce5b161f75be5a4a4fb9e2d6466415af7e134e29ce66
Status: Downloaded newer image for node:latest
 ---> 9ff38e3a6d9d
Step 2/8 : MAINTAINER Douglas Quintanilha
 ---> Running in a34fc6c3b9fe
Removing intermediate container a34fc6c3b9fe
 ---> 5aac0b25d89a
Step 3/8 : ENV NODE_ENV=development
 ---> Running in e97872efb828
Removing intermediate container e97872efb828
 ---> d8e1a548cb10
Step 4/8 : COPY . /var/www
 ---> 44d3258cbcd7
Step 5/8 : WORKDIR /var/www
 ---> Running in 6fedd7562756
Removing intermediate container 6fedd7562756
 ---> 13dfc6585b62
Step 6/8 : RUN npm install
 ---> Running in 989d26104ceb
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm ERR! errno UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm ERR! request to https://registry.npmjs.org/marko failed, reason: unable to get local issuer certificate

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-03-08T21_37_07_694Z-debug.log
ERROR: Service 'node2' failed to build: The command '/bin/sh -c npm install' returned a non-zero code: 1

encontrei algumas formas na internet de como resolver isso com comandos "npm". Porém queria ver se alguém passou por isso e se resolveu via YML mesmo.

Obrigado!

2 respostas

Comentário adicional, o docker-compose up, também falha com o mesmo erro ao tentar rodar o npm install.

solução!

Consegui encontrar o problema e a "solução". A VM que estou usando o Docker está atrás de um proxy (ZScaler) que sobrescreve os certificados de endereços HTTPS. Me parece que o npm nao reconhece o ZScaler como um CA e gera o erro colado acima.

A "solução" que encontrei foi desabilitar o SSL com o comando: npm config set strict-ssl=false Com isso, o arquivo docker/alura-books.dockerfile ficou da seguinte maneira:

FROM node:latest
MAINTAINER Douglas Quintanilha
ENV NODE_ENV=development
COPY . /var/www
WORKDIR /var/www
RUN npm config set strict-ssl=false
RUN npm install
ENTRYPOINT ["npm", "start"]
EXPOSE 3000