我正在使用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命令,还需要其他配置吗?
答案 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
)分组--production
标志。前两个将减少图像中的图层数量,但不要期望尺寸会大幅减少。第三个是可以节省更多空间的地方(如果您有很多开发包)。