如何减少Nuxt应用程序的Docker映像大小?

时间:2020-01-18 06:34:15

标签: docker vue.js minify nuxt.js

我正在使用docker部署我的nuxt应用。但是我的docker映像大小为260MB。对于docker映像来说太大了吗?我已经使用节点阿尔卑斯山来减少码头工人的大小。 这是dockerfile。

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" ]

我想要一个大小小于100MB的docker映像。要添加nuxt应用程序或docker命令,还需要其他配置吗?

2 个答案:

答案 0 :(得分:1)

您必须进行多阶段Docker构建。 想法是,您使用一个图像进行构建,然后将纯JavaScript文件复制到Alphine图像。 在此处查看良好示例-https://github.com/nuxt/nuxt.js/issues/2871

此外,正如JMLizano所述,在运行映像中,您可以安装不带开发人员的软件包- npm install --production (上面的示例只是复制 all 个构建模块以运行映像)

答案 1 :(得分:0)

我不认识Nuxt,但是您可以尝试以下操作:

  • 将两个COPY语句组合在一起,似乎COPY . .就足够了
  • 将两个RUN语句(例如RUN npm install && npm build)分组
  • 避免安装开发包->使用npm install--production标志。

前两个将减少图像中的图层数量,但不要期望尺寸会大幅减少。第三个是可以节省更多空间的地方(如果您有很多开发包)。