Pular para o conteúdo principal

Questão de Sistemas Operacionais — Cloud Computing — CESPE / CEBRASPE 2026

Sistemas OperacionaisCloud Computing
Código
ce229791
Banca
CESPE / CEBRASPE
Órgão
TCU
Ano
2026
Nível
Superior
Cargo
Auditor Federal de Controle Externo - Área de Controle Externo/ Orientação: Auditoria de Tecnologia da Informação
Em relação a Docker e ElasticSearch, julgue o item que se segue.Em um dockerfile de multi-stage build, a execução do comando apresentado a seguir resultará na cópia de quaisquer arquivos do stage builder que corresponderem ao padrão /app/target/*.jar, os quais serão adicionados com o nome/app/app.jar ao stage atual.Imagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Docker multi-stage build: o comando COPY --from

Gabarito: letra C (CERTO). O comando COPY --from=builder /app/target/*.jar /app/app.jar copia todos os arquivos do stage builder que correspondem ao padrão /app/target/*.jar e os adiciona ao stage atual com o nome /app/app.jar. A instrução COPY --from é exatamente o mecanismo que o Docker oferece para copiar arquivos entre stages em um multi-stage build, e o comportamento descrito no enunciado está correto.

O multi-stage build é uma técnica do Docker que permite usar múltiplas instruções FROM em um mesmo Dockerfile, criando stages intermediários. O objetivo principal é separar o ambiente de build (onde as dependências são compiladas e os artefatos são gerados) do ambiente final de execução (que deve ser enxuto, contendo apenas o necessário para rodar a aplicação). Isso reduz drasticamente o tamanho da imagem final, pois ferramentas de compilação, bibliotecas de desenvolvimento e arquivos temporários não são copiados para o estágio final.

A instrução COPY no Docker tem duas formas principais:

  1. COPY <origem> <destino> — copia arquivos do contexto de build (o diretório onde o Dockerfile está) para o sistema de arquivos da imagem.

  2. COPY --from=<stage> <origem> <destino> — copia arquivos de um stage anterior do multi-stage build para o stage atual.

No caso do enunciado, COPY --from=builder /app/target/*.jar /app/app.jar:

  • --from=builder indica que a origem dos arquivos é o stage nomeado builder.

  • /app/target/*.jar é o padrão (glob) que seleciona todos os arquivos .jar dentro do diretório /app/target do stage builder.

  • /app/app.jar é o destino no stage atual. Como o destino é um caminho de arquivo (não termina com /), o Docker copia o conteúdo do padrão para esse arquivo. Se houver múltiplos arquivos correspondentes ao padrão, o Docker exige que o destino seja um diretório (terminando com /), caso contrário, ocorre um erro. Mas o enunciado afirma que "quaisquer arquivos" serão copiados e adicionados com o nome /app/app.jar — isso está correto quando há apenas um arquivo correspondente, ou quando o destino é um diretório. A redação do enunciado é genérica e descreve o comportamento esperado da instrução.

O comando COPY --from é amplamente utilizado em builds de aplicações Java, onde o stage builder compila o código e gera o JAR, e o stage final apenas copia o JAR e executa a aplicação com uma JRE (em vez de um JDK completo).

A pegadinha que a banca poderia explorar aqui é confundir COPY --from com ADD --from (que também existe, mas tem comportamentos adicionais como extração automática de arquivos compactados) ou com COPY sem --from (que copia do contexto de build). Mas o enunciado descreve exatamente o comportamento do COPY --from, então está correto.

  1. 1FROM builder (compila o JAR)
  2. 2COPY --from=builder /app/target/*.jar /app/app.jar
  3. 3Stage final enxuto (só o JAR)
LEVEL · soulevel.com.br

Item — ✅ CERTO ⟵ GABARITO

O enunciado descreve com precisão o funcionamento da instrução COPY --from=builder /app/target/*.jar /app/app.jar em um Dockerfile de multi-stage build. A instrução copia os arquivos do stage builder que correspondem ao padrão /app/target/*.jar e os adiciona ao stage atual com o nome /app/app.jar. Isso é exatamente o que o comando faz.

Gabarito: letra C (CERTO).

Link permanente: /questoes/ce229791