200-901 Application Deployment and Security Practice Question
A developer needs a repeatable, isolated environment that contains Python 3.11, a specific set of pip packages, and the team's application code, so that every engineer and the CI runner execute identical builds. Which artifact should the developer create to meet this requirement?
⚠ Common exam trap
The trap here is treating a requirements.txt as a complete environment definition when it only pins Python packages.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
A Dockerfile that specifies the base image, installs the packages, and copies the application code.
A Dockerfile is the declarative recipe that pins the base image, dependency installation, and application code, producing a portable image with consistent behaviour on developer machines and CI runners. Dependency lists and Compose files address parts of the problem but not the full environment definition, and exported VM images are neither lightweight nor reliably reproducible.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
A virtual machine image exported from one engineer's laptop.
Why it's wrong here
A VM image can capture an entire environment, but it is heavyweight, platform-specific, and awkward to rebuild deterministically in CI. It also tends to accumulate drift and manual changes, so it does not provide the lightweight, declaratively reproducible artifact that a container image built from a Dockerfile provides for this requirement.
- ✗
A docker-compose.yml file that runs a single service with the application image.
Why it's wrong here
Compose orchestrates multiple containers and their networking and volumes, but it does not itself define how the image is built. Without a Dockerfile or a prebuilt image reference, the Compose file cannot specify the Python version or installed packages, so it does not by itself deliver the identical build environment the scenario requires.
- ✓
A Dockerfile that specifies the base image, installs the packages, and copies the application code.
Why this is correct
A Dockerfile declaratively defines the base image with the Python version, the package installations, and the application code copy, producing an image that runs the same way everywhere Docker is available. Building the same Dockerfile on an engineer's machine and on the CI runner yields consistent environments, which is precisely the repeatable isolation requested.
- ✗
A requirements.txt file listing the pip packages.
Why it's wrong here
A requirements.txt pins Python package versions, which helps reproducibility for dependencies, but it does not define the interpreter version, the base operating system, or the application files. Engineers could still run different Python versions or system libraries, so the environment would not be identical across machines and the CI runner as required.
Go deeper
Related to this question
About these practice questions
One of 975 original 200-901 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Cisco exam blueprint
This 200-901 practice question is part of Courseiva's free Cisco certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the 200-901 exam.