Build a Container Image for Another Platform Using a Remote Builder
Learn how to build container images for non-native CPU architectures by offloading the build to a remote machine using Docker Buildx.
Focused hands-on problems designed to help you hone your DevOps or Server Side skills. Some challenges are more educational, while others are based on real-world scenarios. The platform provides hints and feedback for each challenge, including automated solution checks.
Challenges crafted by iximiuz Labs to help you master DevOps and Server Side topics.
Learn how to build container images for non-native CPU architectures by offloading the build to a remote machine using Docker Buildx.
A poorly structured Docker image contains leftover build dependencies and leaked private registry credentials hiding in its intermediate layers. Squash the image to produce a clean, compact version with the same runtime filesystem.
Practice using Docker build arguments to inject version and commit metadata into a Go application during the image build.
Build a container image for a Node.js app that uses a private npm package without leaking the registry credentials into the image layers.
Challenges contributed by the community members sharing their knowledge and expertise.
Configure a Kubernetes Gateway API setup to expose aviation platform services using path-based routing for flight and booking services.
3-phase AWK challenge on realistic data in /home/laborant/awk_challenge/. Fundamentals: columns, delimiters, formatting. Logic & regex: filters, anchors, conditions, math. Sysadmin: logs, CSVs, metrics, counts, reports. Data lives under /home/laborant/awk_challenge/ (logs/access, data/hr, sys/metrics) and outputs are written to /home/laborant/ files.
Create an Ingress resource for a shop application with path-based routing to multiple backend services and configure /etc/hosts for local DNS resolution.
A Deployment with two nginx containers has a port conflict — both containers use port 80. Fix the conflict by updating the ConfigMap, mounting it into the second container, updating the containerPort, and exposing both containers via a NodePort Service.