Order a Dockerfile for the Build Cache

easy 10 XP ~5 minHands-on lab

Labs have no container engine, so nothing is built or started: your files are checked by reading them, the way a reviewer or a CI linter would. docker-compose config (to validate Compose files) and hadolint (a Dockerfile linter) are installed.

Every code change to /home/student/projects/invoice-pdf makes CI reinstall all npm packages, which takes four minutes.

Task

Reorder /home/student/projects/invoice-pdf/Dockerfile so that the dependency install is cached until the dependencies change:

  • copy only package.json and package-lock.json, then run npm ci --omit=dev
  • copy the rest of the source after that
  • keep the same base image, working directory, exposed port and start command

About this machine

Ubuntu 24.04 with no internet access. You are student with passwordless sudo. The grader checks the final state of the machine, not the commands you typed. Values like names and ports are generated for you.

TerminalNot started

Your machine is ready to start

Create a free account to open a machine and get graded.