Então João, temos dois problemas aí:
O primeiro:
Em seu Dockerfile
as seguintes instruções foram especificadas:
COPY . /var/WWW
WORKDIR /var/WWW
Logo, seu WORKDIR
e os arquivos foram copiados para a pasta /var/WWW (com W maiúsculo). Trocando para /var/www deve resolver parcialmente o problema.
Como no seu Dockerfile
já foi definido o WORKDIR
e seu ENTRYPOINT
, não é necessário ao executar o container passar a flag -w /var/www
e passar o npm start
como parâmetro, já que ele foi definido no ENTRYPOINT
.
Bastando executar (até então) o seguinte trecho:
docker run -p 8080:3000 -v "C:\Users\shun\Desktop\volume-exemplo:/var/www" rocklee6544/node
Agora vem um problema um pouco mais complexo:
Ao utilizar a flag
-v "C:\Users\shun\Desktop\volume-exemplo:/var/www"
O seu container está utilizando a pasta C:\Users\shun\Desktop\volume-exemplo
como volume e montando uma referência para a pasta /var/www
. Mas o que acontece nesse momento? O Docker ao inicializar o volume, joga o conteúdo da pasta que está na sua máquina host dentro da pasta do container, deixando ela vazia.
Para resolver esse problema, basta inicializar o volume do seguinte modo:
docker run -p 8080:3000 -v "var/www" rocklee6544/node
Sem passar o primeiro parâmetro, o Docker criará um volume com identificador aleatório em sua máquina no momento que subir o container, ou seja, não esvaziará sua pasta.
Uma última observação é que as aspas não são necessárias, deixando o comando mais limpo:
docker run -p 8080:3000 -v var/www rocklee6544/node
`
Sacou? Se ficou confuso me avisa que te explico novamente :)