Questão de Engenharia de Software — Ferramentas de Desenvolvimento de Software — FGV 2023
Engenharia de Software›Ferramentas de Desenvolvimento de Software
Código
fg065322
Banca
FGV
Órgão
PGM - Niterói
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
A analista Ana configurou o pipeline MainPipe no GitLab CI/CD da PGM de Niterói. O MainPipe possui um único job, o BuildJob, que automatiza o processo de build da aplicação PGMApp. O build de PGMApp é realizado em um container Docker e demanda a execução de um banco de dados em outro container Docker. A fim de aproveitar os recursos de integração do GitLab CI/CD com o Docker, Ana especificou as imagens Docker necessárias ao build diretamente no arquivo .gitlab-ci.yml do MainPipe, no trecho associado ao BuildJob.Logo, Ana especificou a imagem Docker para o build e a imagem Docker para o banco de dados, respectivamente, nas subseções do .gitlab-ci.yml:
Aimage e services;
Bimage e artifacts;
Cworkflow e services;
Dworkflow e artifacts;
Eartifacts e workflow.
Revelar gabarito e comentário▾
GabaritoA — image e services;
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”.
GitLab CI/CD – Especificação de imagens Docker
Gabarito: letra A. No GitLab CI/CD, a subseção image define a imagem Docker do container principal do job, enquanto services define containers auxiliares (ex.: banco de dados) que rodam em paralelo. Logo, para o build usa-se image; para o banco de dados, services. Essas são as duas subseções corretas.
A banca testa o conhecimento da sintaxe YAML do .gitlab-ci.yml, em especial as palavras-chave disponíveis dentro de um job. A armadilha está em confundir services com artifacts (que armazenam arquivos entre jobs) ou workflow (que controla a execução do pipeline como um todo).
.gitlab-ci.yml (job)
1image
Container principal (build)
2services
Containers auxiliares (banco de dados)
3artifacts
Arquivos entre jobs (não é imagem)
4workflow
Controle do pipeline (nível superior)
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
image e services são as subseções corretas. image especifica a imagem do container principal (build) e services especifica containers adicionais (banco de dados). Respeita a documentação oficial do GitLab.
Alternativa B — ❌ Incorreta
artifacts não serve para especificar imagens Docker; serve para definir arquivos que devem ser preservados após o job (ex.: binários, relatórios). A confusão comum é trocar services por artifacts.
Alternativa C — ❌ Incorreta
workflow é uma palavra-chave de nível superior (não dentro de um job) usada para controlar a execução do pipeline (ex.: regras de quando executar). Não define imagens de containers.
Alternativa D — ❌ Incorreta
Tanto workflow quanto artifacts não se aplicam à especificação de imagens. Ambos são usados em contextos diferentes (controle de pipeline e armazenamento de artefatos, respectivamente).
Alternativa E — ❌ Incorreta
Novamente, artifacts e workflow não definem containers. A ordem inversa (artifacts primeiro) também não faz sentido.
NÃO CAIA NESSA!
Cuidado para não confundir services (containers auxiliares) com artifacts (arquivos gerados) ou workflow (controle do pipeline). A banca explora essa troca exatamente nas alternativas B, C, D e E.