GitHub Actions: CI You Will Not Fight
by Tom Eriksen
Containerise a real application, then run its entire stack locally with one Compose file.
TE Created by Tom Eriksen
Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.
6 modules · 43 lessons · 5h 45m of material
7 lessons running 52m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
7 lessons running 56m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
8 lessons running 1h 4m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
7 lessons running 58m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
7 lessons running 58m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
7 lessons running 57m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 modules · 43 lessons
5h 45m total length
Short list, and deliberately so. If you meet these you can start today.
Containers stopped being optional some time ago, but most developers learn them by copying a Dockerfile from a blog post and hoping. This course teaches them from the mechanism up, quickly enough that you are productive on the first evening.
You begin with images and layers, and specifically with why layer order decides whether your build takes four seconds or four minutes. Then a Dockerfile written properly for a real web application: a multi-stage build that leaves compilers out of the final image, dependency installation cached separately from source code, a non-root user, a health check, and signal handling so the container actually stops when asked. You will measure the image before and after each improvement.
Compose comes next, and this is where daily life changes. One file that runs your application, a database, a cache and a background worker, with named volumes that persist data, networks that isolate services, environment configuration that differs between machines, and dependency ordering that waits for readiness rather than mere existence.
The last part is the operational reality: debugging inside a running container, reading logs, diagnosing a container that exits immediately, keeping images small and free of secrets, scanning for vulnerabilities, and a clear-eyed section on what changes when these containers run somewhere other than your laptop.
Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.
Reviews are written by people who bought this course. We publish the critical ones too.
5.0
Rated 5.0 out of 5Course rating · 2 reviews
Bruno Costa
DevOps engineer
The moment where he reorders four lines of a Dockerfile and the rebuild drops from two minutes to nine seconds is the most immediately applicable thing I have watched all year. I applied it to three of our services the same afternoon.
Petra Horváth
Backend engineer
Our stack had the API starting before Postgres would accept connections, and everybody just restarted it and carried on. The healthcheck and startup condition section sorted it in four lines of configuration. Small thing, constant irritation, gone.
Platform engineer and DevOps instructor
Tom has built delivery pipelines for teams of three and teams of three hundred, and openly prefers the smaller ones. He teaches Docker, Kubernetes and CI/CD outward from a single commit, so nothing ever appears by magic, and he treats the test suite as part of the pipeline rather than a separate subject. Every course includes a deliberate outage that you have to diagnose from logs and metrics before you can continue. He is a CNCF contributor and a reluctant but formidable YAML expert.
One-time payment · lifetime access