Pular para o conteúdo principal

Questão de Sistemas Operacionais — Contêineres (Docker, Kubernetes, etc.) — CESPE / CEBRASPE 2025

Sistemas OperacionaisContêineres (Docker, Kubernetes, etc.)
Código
ce418278
Banca
CESPE / CEBRASPE
Órgão
TRT 10
Ano
2025
Cargo
AJ TRT10

Julgue o item seguinte, relativo a virtualização e orquestração de infraestrutura.

 

No dockerfile mostrado a seguir, com a execução do comando RUN pip install -r requirements.txt, serão instaladas as dependências listadas no requirements.txt, sem o armazenamento de caches, o que ajuda a reduzir o tamanho final da imagem.

 

FROM python:3.12
WORKDIR /usr/local/app
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY src ./src
EXPOSE 5000
RUN useradd app
USER app
CMD ["uvicorn", "app.main:app", "--host",
"0.0.0.0", "--port", "8080"]"0.0.0.0", "--
port", "8080"]

  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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”.

Dockerfile: o comando RUN pip install e o cache de dependências

Gabarito: ERRADO. A afirmação está incorreta porque o comando RUN pip install -r requirements.txt, da forma como está escrito no Dockerfile, instala as dependências e armazena os caches do pip na camada da imagem, não o contrário. Para evitar o armazenamento de caches, seria necessário adicionar a opção --no-cache-dir ao comando, como em RUN pip install --no-cache-dir -r requirements.txt. A ausência dessa opção faz com que os arquivos de cache (como os pacotes .whl baixados) sejam gravados na camada da imagem, aumentando seu tamanho final.

O Dockerfile é um arquivo de texto com instruções que o Docker executa para construir uma imagem. Cada instrução (como FROM, COPY, RUN) cria uma camada na imagem. O comando RUN executa um comando dentro do container em construção e o resultado (incluindo arquivos criados ou modificados) é salvo como uma nova camada. O pip, ao instalar pacotes, baixa e armazena caches em um diretório (geralmente ~/.cache/pip ou /root/.cache/pip). Sem a opção --no-cache-dir, esses caches são mantidos na camada da imagem, contribuindo para o seu tamanho.

Para reduzir o tamanho da imagem, é uma prática comum usar --no-cache-dir no comando pip install. Outra técnica é combinar a instalação das dependências e a limpeza dos caches em uma única instrução RUN, como RUN pip install --no-cache-dir -r requirements.txt && rm -rf /root/.cache/pip. Isso garante que os caches não fiquem na camada final.

A pegadinha da banca está em inverter o efeito do comando: o candidato pode pensar que o pip install por padrão não armazena caches, mas na verdade ele armazena. A opção --no-cache-dir é que desativa o cache. É importante lembrar que, para reduzir o tamanho da imagem, é necessário explicitamente desabilitar o cache ou limpar os arquivos de cache após a instalação.

NÃO CAIA NESSA!

A banca inverte o efeito do comando pip install. O candidato pode achar que o pip por padrão não guarda caches, mas ele guarda. A opção --no-cache-dir é que desativa o cache. Lembre-se: para reduzir o tamanho da imagem, é preciso explicitamente desabilitar o cache ou limpar os arquivos de cache após a instalação.

  1. 1pip baixa pacotes
  2. 2armazena cache na camada
  3. 3aumenta tamanho da imagem
  4. 4[-] sem --no-cache-dir
LEVEL · soulevel.com.br

Item — ❌ ERRADO

A afirmação diz que "serão instaladas as dependências listadas no requirements.txt, sem o armazenamento de caches". Isso está errado porque o comando RUN pip install -r requirements.txt não inclui a opção --no-cache-dir. Portanto, o pip armazenará os caches na camada da imagem, aumentando seu tamanho. Para que a afirmação fosse correta, o comando deveria ser RUN pip install --no-cache-dir -r requirements.txt.

Gabarito: ERRADO

Link permanente: /questoes/ce418278