Introduction to Containers and CI/CD
Week 5 Assignment: Containerize and Ship a Data Pipeline
This week moves students from local scripts to deployable artifacts. The focus is on reproducibility, containerization, and CI automation.
By the end of this lesson, students should be able to:
Explain* why containers solve the "works on my machine" problem.
Write* a basic Dockerfile for a Python pipeline.
Run* a container locally with environment variables.
Read* a GitHub Actions workflow and identify its steps.
Push* a container image to Azure Container Registry.
| Time | Activity | Duration |
|---|---|---|
| 0:00 | Welcome and recap of Weeks 1 to 4 | 10 min |
| 0:10 | Concept intro: containers and CI/CD | 15 min |
| 0:25 | Live demo: build and run a Docker image | 20 min |
| 0:45 | Break | 10 min |
| 0:55 | Workshop: write a Dockerfile in pairs | 25 min |
| 1:20 | Mini-lab: log in to ACR, tag and push an image | 15 min |
| 1:35 | CI walkthrough: GitHub Actions workflow | 15 min |
| 1:50 | Assignment overview and Q&A | 10 min |
| 2:00 | End | - |
Total: 2 hours
az acr create --resource-group rg-data --name hyfregistry --sku Basic
AcrPush role. Share the JSON credentials during the mini-lab or CI walkthrough.az ad sp create-for-rbac \\
--name "github-ci-team-1" \\
--role AcrPush \\
--scope $(az acr show --name hyfregistry --query id --output tsv)
az acr login locally. Assign the AcrPush role to their Azure accounts:az role assignment create \\
--assignee <student-email> \\
--role AcrPush \\
--scope $(az acr show --name hyfregistry --query id --output tsv)
az login working.Goal: Show a reproducible build.
Goal: Students write a Dockerfile in pairs.
requirements.txt..dockerignore.Goal: Connect tests to automation.
.github/workflows/ci.yml.Goal: Map the chapters to assignment steps.
The HackYourFuture curriculum is licensed under CC BY-NC-SA 4.0 *https://hackyourfuture.net/*

Built with ❤️ by the HackYourFuture community · Thank you, contributors
Found a mistake or have a suggestion? Let us know in the feedback form.