当前位置: 首页 > news >正文

网站专题策划页面怎么做/今天国内最新消息

网站专题策划页面怎么做,今天国内最新消息,自己做网站iis设置,伊春北京网站建设本文首发自“Docker公司”公众号(ID:docker-cn)编译丨小东每周一、三、五 与您不见不散! 在处理 Node.js应用程序时,我注意到部署镜像的时间有时候需要很长时间,远超我的预期。于是,我开始深入研…

screenshot

本文首发自“Docker公司”公众号(ID:docker-cn)
编译丨小东
每周一、三、五 与您不见不散!


在处理 Node.js应用程序时,我注意到部署镜像的时间有时候需要很长时间,远超我的预期。于是,我开始深入研究这个问题,并且发现只需两个步骤就可以让 948M 大小的 Docker 镜像缩减至 78.6M,从而减少部署时间、提升效率。

如下图所示,这就是我尝试的结果(948MB缩减至78.6MB):

screenshot


初始配置

该应用程序是一个典型的 Web 应用程序,它具有前端部分(React.js)和后端部分(在 Express.js 上的 Node.js 服务器)。构建过程包含以下4个步骤:

  1. 构建 NPM;
  2. 运行测试;
  3. 构建 Docker 镜像;
  4. 发布到 hub.docker.com ;

应用程序更改前的 Dockerfile (位于应用程序目录的根目录中),若下所示:

FROM node:8.10.0

RUN mkdir -p /usr/app/build

WORKDIR /usr/app

COPY ./build /usr/app/build

COPY ./node_modules /usr/app/node_modules

COPY ./package.json /usr/app/package.json

EXPOSE 3000

CMD [ "npm", "run", "start" ]

该 Dockerfile 做了以下几件事:

  • 将 /usr/app 设置为应用程序目录;
  • 将构建文件复制到应用程序目录;
  • 将所需的 Node.js 模块复制到应用程序目录;

步骤1:将基础的 Node.js 镜像替换为缩减后的镜像(948MB缩减至206MB)

Node.js 镜像仓库为每个 Node.js 版本提供了若干个镜像标签。例如,8.10.0版本就有6个不同的镜像标签:

  • 8.10.0 – 266MB compressed
  • 8.10.0-alpine – 23MB compressed
  • 8.10.0-onbuild – 266MB compressed
  • 8.10.0-slim – 92MB compressed
  • 8.10.0-stretch – 343MB compressed
  • 8.10.0-wheezy – 202MB compressed

有趣的是这个 alpine 版本。这是一个最小的可用镜像,因为它基于 Alpine Linux 项目。Alpine 使用的是 musl libc 而不是内部的 glibc ,但 Node.js 通常在典型的开发者系统中使用后者(glibc)。这可能会破坏您使用的一些函数库,但是我的基于 Express.js 的应用程序并没有问题。如下所示,切换到 alpine:

注释:change the first line from:

FROM node:8.10.0

注释:to:

FROM node:8.10.0-alpine

接下来,运行“docker build”命令。在我的案例中,镜像的大小已经缩减到206MB,比初始大小减少了78%!


步骤2:使用 NPM --production 标签(206 MB缩减至79 MB)

默认情况下,npm install 将安装所有依赖项,包括 devDependencies 部分。有了 --production 标签,我们就可以从 package.json 文件中仅安装所需的依赖项。在 devDependencies 部分中,我保留了构建系统、测试工具和一些其它的开发工具。我习惯于将 React.js 函数库和其它的 UI 依赖项一起保留在 package.json 文件中,但是它看起来是不正确的,因为我有 webpack 来生成所有的 UI 依赖项。因此,正确的方法是将所有不会直接用于在生产服务器上,也不会直接用于在 devDependencies 部分上的依赖项移除。

原则是:如果依赖项只是在构建期间需要用到,请将它移到 devDependencies 部分。

我没有为服务器文件打包,所以我将所有服务器依赖项保留在依赖项部分中,就像以前一样。这意味着工作流程应包含以下步骤:

  • 构建 UI 包;
  • 将UI包复制到 Docker 镜像;
  • 将服务器文件复制到 Docker 镜像;
  • 将 package.json 文件复制到 Docker 镜像;
  • 在镜像中执行“npm install --production”命令;

我得到的 Dockerfile 的最终版本,如下所示:

FROM node:8.10.0-alpine

RUN mkdir -p /usr/app/build

WORKDIR /usr/app

COPY ./build /usr/app/build

COPY ./package.json /usr/app/package.json

RUN cd /usr/app && npm install --production

EXPOSE 3000

CMD [ "npm", "run", "start" ]

再次运行“docker build”命令。在我的案例中,镜像大小缩减至79M,这一次比初始大小减少了91%!


结 论

screenshot

两个简单的步骤可以将镜像大小从948 MB缩减到79 MB。现在容器部署过程所需的时间减少了很多。在hub.docker.com 上被压缩的镜像大小看起来更好!

http://www.jmfq.cn/news/4911445.html

相关文章:

  • 装修设计方案/重庆优化seo
  • 课程网站开发卷宗/百度资源站长平台
  • 怎么做才能提升网站收录/网站测试
  • 网站内容侵权 怎么做/sem竞价代运营
  • 官方网站建设哪家公司好/国际新闻 军事
  • wordpress阿里云oss/seo服务运用什么技术
  • 网站能不能自己做/网站推广找哪家公司好
  • 云服务器2008做网站/营销推广工作内容
  • psd简单的网站首页/推广模式包括哪些模式
  • 武夷山网站推广/网站搜索引擎优化情况怎么写
  • 云空间搭建网站/南安网站建设
  • 做动效的网站/空间刷赞网站推广
  • wordpress 舆情管理/网站优化一年多少钱
  • 公司网站如何做推广/东莞整站优化推广公司找火速
  • 电子商务网站开发附件/企业营销策划论文
  • 网站开发需求分析包括哪些方面/小熊代刷推广网站
  • wordpress 右侧悬浮/宁波seo关键词如何优化
  • 网站建设找哪家公司好/天津抖音seo
  • 男女直接做的视频 视频网站/网站百度收录批量查询
  • 移动软件开发工程师/河南网站优化
  • ps切片做网站/南京谷歌seo
  • 帮客户做网站被起诉/关键词查询网站的工具
  • 网站怎么做才是对搜索引擎友好/网络媒体发稿
  • 自己做网站和凡科的区别/引流推广方案
  • 淘宝优惠网站怎么做/青岛网站seo公司
  • 网页设计下载免费/网站怎么优化
  • app官方网站/互联网服务平台
  • 服装企业营销网站建设/网站排名优化怎么做
  • 自己做采集电影网站/腾讯广告代理商加盟
  • 设计师学习网站/备案查询站长之家