You're a DevOps engineer at esc bash. A small Go reporting tool is ready to ship, and it is your job to get it production-ready: make the image lean, publish it to a registry, run it safely under a resource limit, and record what Docker is consuming on the host.
Run this first. It creates /root/report-tool with the app source:
curl -fsSL https://raw.githubusercontent.com/Esc-Bash/project-init-scripts/main/docker/project-3/init.sh | bash
This drops in main.go (which prints report ready) and a go.mod.
Do not change them.
Dockerfile in
/root/report-tool: a build stage on golang:1.22-alpine that
compiles the binary, and a small final stage (such as alpine) that
copies the binary over with COPY --from and runs it. Build and tag
it report-tool:1.0. It must run and print report ready, and the
final image must be under 50 MB.registry:2 image on
port 5000. Tag your image localhost:5000/report-tool:1.0 and push
it.localhost:5000/report-tool:1.0 with a memory limit./root/ops/usage.txt.Every step here was covered in the multi-stage, registry, debugging, and cleanup topics.
Press Submit when all four are done.
Start the lab on the right to run checks.