Как уменьшить Docker размер изображения приложения Nuxt? - PullRequest
0 голосов
/ 18 января 2020

Я использую docker для развертывания моего приложения nuxt. Однако мой docker размер изображения составляет 260 МБ. Это слишком большой для docker изображения. Я использовал узел alpine, чтобы уменьшить размер docker. Это файл Docker.

FROM node:10-alpine

RUN mkdir -p /usr/src/nuxt-app
WORKDIR /usr/src/nuxt-app


# copy the app, note .dockerignore
COPY package*.json ./
COPY . .
RUN npm install

RUN npm run build

EXPOSE 3000

ENV NUXT_HOST=0.0.0.0
# set app port
ENV NUXT_PORT=3000

# start the app
CMD [ "npm", "start" ]

Я хочу иметь docker изображение размером <100 МБ. Требуется ли дополнительная конфигурация для добавления приложения nuxt или docker команд? </p>

Ответы [ 2 ]

0 голосов
/ 19 января 2020

Вы должны сделать многоступенчатую docker сборку. Идея в том, что вы используете одно изображение для сборки, а затем просто копируете простые javascript файлы в alphine image. Проверьте хороший пример здесь - https://github.com/nuxt/nuxt.js/issues/2871

Также, как упоминал JMLizano, в образе выполнения вы можете устанавливать пакеты без dev - npm install --production (пример выше, просто скопируйте все сборка модулей для запуска образа)

0 голосов
/ 18 января 2020

Я не знаю Nuxt, но некоторые вещи, которые вы можете попробовать:

  • Группировать два оператора COPY, кажется, этого должно быть достаточно с COPY . .
  • Сгруппируйте два оператора RUN (например, RUN npm install && npm build)
  • Избегайте установки пакетов dev -> Используйте флаг --production npm install .

Первые два уменьшат количество слоев в изображении, но не ожидают значительного уменьшения размера. Третий - это место, где вы можете сэкономить больше места (если у вас много пакетов для разработчиков).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...