Challenge 1: Write a Multi-Tag Build Command — Possible Solution ==================================================================== docker build -t myapp:e5f6g7h -t myapp:v2.0.0 . docker push myapp:e5f6g7h docker push myapp:v2.0.0 WHY THIS WORKS AS AN ANSWER ------------------------------ Both -t flags apply to the SAME single build — Docker builds the image once and tags the resulting result with both myapp:e5f6g7h (the commit SHA, for exact traceability) and myapp:v2.0.0 (the semantic version, marking this specific build as a real release), exactly matching this chapter's own multi-tag example syntax. latest is deliberately OMITTED from both the build and push commands — per the requirement, and per this chapter's gotcha, a release build doesn't need to (and often shouldn't, depending on the team's release process) automatically become whatever "latest" currently points to, since that's a separate, deliberate decision rather than an automatic side effect of tagging a release. Each tag is pushed separately with its own docker push command, since tags aren't pushed automatically just by being applied locally — each one has to be explicitly sent to the registry.