LINUX.ORG.RU

История изменений

Исправление PPP328, (текущая версия) :

Это для двух разных этапов сборки. Используется multistage сборка. Первый с альясом (as builder), вторйо без.

  1. Первый этап (builder):
  • Docker строит образ от базового образа node:22.0 и задает алиас builder для этого этапа.
  • Устанавливается рабочая директория в /app.
  • Копируются package.json и package-lock.json.
  • Запускается npm ci для установки зависимостей из package-lock.json.
  • Копируются все файлы и папки из текущего каталога в контейнер.
  • Запускается npm run build для сборки приложения.
  1. Второй этап:
  • Docker начинает новый этап с базового образа node:22.0 без алиаса.
  • Копируется содержимое из первого этапа, используя COPY –from=builder /app ./, чтобы скопировать все файлы из директории /app.
  • Выставляется порт экспозиции 3000 для контейнера.
  • Устанавливается команда запуска приложения через CMD [«npm», «run», «start»].

В целом вся эта катавасия затем, чтобы в итоговый образ не копировать всю ерунду, что нужна только для самой сборки, а не для итоговой работы.

Исходная версия PPP328, :

Это для двух разных этапов сборки. Используется multistage сборка. Первый с альясом (as builder), вторйо без.

  1. Первый этап (builder):
  • Docker строит образ от базового образа node:22.0 и задает алиас builder для этого этапа.
  • Устанавливается рабочая директория в /app.
  • Копируются package.json и package-lock.json.
  • Запускается npm ci для установки зависимостей из package-lock.json.
  • Копируются все файлы и папки из текущего каталога в контейнер.
  • Запускается npm run build для сборки приложения.
  1. Второй этап:
  • Docker начинает новый этап с базового образа node:22.0 без алиаса.
  • Копируется содержимое из первого этапа, используя COPY –from=builder /app ./, чтобы скопировать все файлы из директории /app.
  • Выставляется порт экспозиции 3000 для контейнера.
  • Устанавливается команда запуска приложения через CMD [«npm», «run», «start»].