Questão nº 66

Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 66)

FGV2024Técnico Judiciário - Desenvolvimento de SistemasTecnologia da Informação
Gabarito: Aver comentário ↓

Carlos gerou uma imagem customizada para um contêiner no Docker, o qual executará um serviço na porta 3000, baseado em Node.JS.
Para o arquivo Dockerfile, foi utilizada a imagem node:alpine de base, e uma das linhas escritas por Carlos foi:

Resposta comentada

Gabarito Alternativa A

O comando EXPOSE no Dockerfile serve para documentar qual porta o serviço dentro do contêiner pretende usar. Ele informa aos usuários e a outras ferramentas Docker que aquela porta é relevante para a aplicação.

  • (A) Correta: EXPOSE 3000 é a instrução correta para indicar que o serviço Node.JS dentro do contêiner estará escutando na porta 3000. É uma declaração da porta que a aplicação interna usa, não uma abertura da porta para o host.
  • (B) Incorreta: CMD npm -p 3000:3000 está incorreto. CMD define o comando padrão para executar quando o contêiner inicia (ex: CMD ["npm", "start"]). A parte -p 3000:3000 é um argumento para o comando docker run no host (para mapear portas), não um argumento para o npm e não se usa dentro do CMD para mapeamento de portas. Armadilha: Esta alternativa tenta confundir o comando de inicialização do serviço (CMD) com o mapeamento de portas do Docker (-p), que é feito na execução do contêiner, não na construção da imagem ou no comando interno.
  • (C) Incorreta: WORKDIR ./src ./usr/app está sintaticamente incorreto. WORKDIR define o diretório de trabalho para as instruções seguintes e aceita apenas um caminho, não dois. Além disso, não tem relação com a declaração de portas.
  • (D) Incorreta: RUN npm start executa um comando durante a construção da imagem, criando uma nova camada. npm start é usado para iniciar o serviço, mas geralmente faz parte do CMD ou ENTRYPOINT para ser executado quando o contêiner inicia, não durante a construção. Mais importante, não declara a porta que o serviço usará.
  • (E) Incorreta: COPY ./src está incompleto, pois falta o destino para onde os arquivos serão copiados dentro do contêiner (ex: COPY ./src /app/src). Além disso, sua função é copiar arquivos, não declarar portas.

Fonte: FGV TRF1 2024 Técnico Judiciário - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho