COPY . .
RUN npm install
должно быть:
COPY package*.json ./
RUN npm install
COPY . .
почему это важно?
docker кэширует каждую инструкцию как отдельный слой
исходный код меняется с каждым коммитом
поэтому
COPY . . ломает кэш, и всё после него (включая npm install) пересобирается с нуля при каждой сборкеесли поменять порядок, слой с установкой зависимостей остаётся в кэше даже при изменении кода, потому что он зависит только от
package.jsonодна перестановка строк. экономит 40+ секунд на каждой пересборке. кэшируй зависимости, а не код.
👉 Java Portal
