我有作为docker容器运行的Node.js应用程序。这是
该应用程序的Dockerfile。
FROM ubuntu
ARG ENVIRONMENT
ARG PORT
RUN apt-get update -qq
RUN apt-get install -y build-essential nodejs npm nodejs-legacy vim
RUN mkdir /consumer_portal
ADD . /consumer_portal
WORKDIR /consumer_portal
RUN npm install -g express
RUN npm install -g path
RUN npm cache clean
RUN npm install
EXPOSE $PORT
ENTRYPOINT [ "node", "server.js" ]
CMD [ $PORT, $ENVIRONMENT ]
我可以修改此Dockerfile中的内容以减小Docker镜像大小吗
最佳答案
就像这里大多数建议的那样,使用the official node alpine image作为基础图像是减少图像整体尺寸的简单解决方案,因为与基础ubuntu图像相比,甚至基础 Alpine 图像也要小很多。
Dockerfile可能如下所示:
FROM node:alpine
ARG ENVIRONMENT
ARG PORT
RUN mkdir /consumer_portal \
&& npm install -g express path
COPY . /consumer_portal
WORKDIR /consumer_portal
RUN npm cache clean \
&& npm install
EXPOSE $PORT
CMD [ "node", "server.js" ]
它几乎相同,应该可以正常工作。 ubuntu镜像中的大多数命令都可以在 Alpine 镜像中以相同方式应用。
当我添加模拟数据以创建可能与您类似的项目时,将生成大小为491 MB的ubuntu镜像,而 Alpine 版本的大小仅为62.5 MB:
REPOSITORY TAG IMAGE ID CREATED SIZE
alpinefoo latest 8ca6f338475e 5 minutes ago 62.5MB
ubuntufoo latest 38620a1bd5a6 6 minutes ago 491MB
关于docker - 如何减少Docker镜像的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43634109/