3
respostas

Erro na atribuição de porta

Ao acrescentar a linha EXPOSE 3000 e buildar a imagem, a porta não foi atribuída por algum motivo. Alguém sabe o que pode ter acontecido? Percebam que no processo do build o EXPOSE 3000 não é executado.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Oi, Jonas. Tudo bem?

Se você olhar na documentação oficial do Docker neste link, poderá ver que a instrução EXPOSE não publica de fato a porta, serve mais como documentação entre quem escreveu o dockerfile e quem vai executar o container para saber qual porta deve ser publicada. Para de fato publicar a porta, você deve usar o -p PORTA-HOST:PORTA-CONTAINER. No caso que você executou deveria ser docker run -d -p 8080:3000 jonascesar/app-node:1.2 (ou qualquer porta que você queira mapear na sua máquina física).

Espero ter ajudado. Bons estudos!

Oi Vitor, tudo certo e você?

Acontece que, se você reparar na aula "Incrementando a imagem" do capítulo "3 - Criando e compreendendo imagens", o Daniel acrescenta no Dockerfile a linha "EXPOSE 3000" e builda a imagem novamente. Depois que ele sobe o container dessa imagem e faz o "docker ps" é possível ver que na coluna "PORTS" do "docker ps" dele aparece a porta 3000 do novo container. E isso não ocorreu comigo mesmo fazendo exatamente como ele fez (como mostrei nas imagens do post). Deu pra entender agora?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Oi, Jonas. Tudo tranquilo aqui também.

Não consegui reproduzir esse comportamente aqui, nem achei informações sobre possíveis motivos para a instrução EXPOSE não estar sendo executada. Você pode tentar adicionar outras instruções no Dockerfile para ver se a EXPOSE vai ser a única que não será executada?

De toda forma, como é uma instrução voltada mais para documentação que para agir de fato na publicação de uma porta no container, eu não me preocuparia. Acredito que se você rodar o comando docker run -d -p 8080:3000 jonascesar/app-node:1.2 vai continuar funcionando como esperado.