8
respostas

Não encontra package.json

Ao tentar iniciar o servidor node, apresenta o seguinte erro:

Julios-MacBook-Pro:~ juliolima$ docker run -p 8080:3000 -v "/Volumes/MacOSX/Users/juliolima/Cursos/volume-exemplo:/var/www" -w "/var/www" node npm start
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /var/www/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/var/www/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-04-14T01_01_06_372Z-debug.log

Estou usando o MacOS High Sierra. Já verifiquei e o arquivo package.json encontra-se na pasta indicada.

Estou usando o Docker Toolbox porque meu computador é de 2010 e não é compatível com o Docker Desktop.

8 respostas

Olá Julio, tudo bem? Bom, aconteceu algo semelhante comigo, mas por algum motivo eu não tinha a pasta node_modules na pasta do "volume-exemplo", então realizei novamente o download por esse link da aula, e extrai todo o conteúdo para outra pasta e depois executei o comando novamente:

docker run -p 8080:3000 -v "<novo-caminh-completo>:/var/www" -w "/var/www" node npm start

Então, tenta faz isso e fala pra gente o resultado!

Infelizmente, não funcionou. O projeto que eu tinha baixado antes tinha a pasta node_modules, sim. Baixei pelo seu link, substituí os arquivos, mas deu o mesmo erro.

Eu acredito que seja um erro relacionado a como está sendo mapeado o meu diretório local para o diretório do container do node, mas não faço ideia do que possa estar errado ou de como resolver. Já conferi a pasta diversas vezes, troquei para outra pasta, mas nada resolve.

Também pode ser algum bug do Toolbox. Eu estou usando a versão mais nova que estava disponível: 19.03.1

Agora entendi, é sim no Docker Toolbox os volumes são montados de forma de diferente porque o Toolbox usa o VirtualBox e o mesmo não tem acesso direto, fora que os caminhos do comandos precisam usar duas barras para a letra da unidade (//) da seguinte forma:

//c/Users/admin/volume

Você tentar seguir os passos descritos nesse artigo: Fixing Volumes in Docker Toolbox.

E fala pra gente se funcionou!

Amigo, não funcionou. Coloquei as duas barras no início, mas deu o mesmo erro.

O artigo que você enviou parece que relata o problema quando se usa Windows. No meu caso, estou usando Mac OS High Sierra.

É Julio, o artigo está embasado no Windows porém, achei que poderia ti ajudar já que você falou que está usando o Docker Toolbox. Mas vamos fazer alguns testes para entender o que está acontecendo e porque o package.json não está sendo encontrado pelo container, então você poderia executar o comando:

docker run -d -p 8080:3000 -v "/Volumes/MacOSX/Users/juliolima/Cursos/volume-exemplo:/var/www" -w "/var/www" node

Com isso o container deve ser iniciado em background, no caso em segundo plano, e não vai travar o terminal, logo em seguida você pode executar o comando:

docker ps

Para verificar qual foi o ID atribuído a esse container, logo em seguida você executa o comando para entrar dentro do container, na verdade pra vincular o seu terminal ou terminal do container:

docker exec -it ID_do_container_aqui bash

Pronto nesse ponto você deve está dentro do container, e nesse momento você pode navegar até a pasta com o comando:

cd /var/www

E executar o comando:

ls -la

Para listar todos os arquivos, inclusive os arquivos ocultos.

Peço que informe todos os logs desse processo aqui no fórum pra gente poder identificar o problema.

Jonilson, vou deixar esse erro pra lá.

Nas aulas seguintes o instrutor ensinou a usar um dockerfile e, desta forma, o erro não ocorreu. Tudo funcionou perfeitamente.

Acredito que seja algum problema no Docker Toolbox. Como no curso mesmo há a advertência de que o ideal é usar o Docker Desktop, vou tentar tomar o cuidado de, quando for usar o Docker profissionalmente, providenciar um ambiente adequado, que suporte o Docker Desktop de cara.

Tanto acho que é um problema do Docker Toolbox, que enfrentei outros problemas durante o curso: não consegui logar no Docker Hub (aí não baixei a imagem que deveria ser usada, mas contornei o problema fazendo o build do projeto disponibilizado na aula); e, na última aula, não consegui usar o Docker Compose, também por não ter conseguido logar no Docker Hub.

Enfim, o curso não foi 100% por causa desses problemas mas acredito que, estando com o ambiente bem configurado, não vou ter problemas quando usar a ferramenta no futuro.

De qualquer forma, te agradeço demais por tentar ajudar!

Julio, boa noite !

Você conseguiu buildar sua imagem criada, no Docker Toolbox ?

Pergunto, pois estou utilizando o Docker Toolbox, mas não estou obtendo êxito ao tentar buildar meu DockerFile.

Thiago, o build do arquivo Dockerfile eu consegui fazer. Mas a última aula, onde era pra usar o Docker Compose, não consegui executar. Eu acho que é porque meu computador é bem antigo (2010). Ele tem um Intel Core 2 Duo que não é compatível com o Docker Desktop, por isso usei o Docker Toolbox. Mas parece que essa camada não é imune a problemas. Como eu citei acima, não consegui fazer nem login no Docker Hub. Então os problemas foram se acumulando.

De qualquer forma, em relação ao build do Dockerfile não tive problema nenhum. Executei exatamente como foi ensinado na aula sobre este tópico.