• nodejs docker 开发最好选择yarn 进行包管理而不是npm


    npm 与yarn 的区别网上一大堆的文章,我们在构建docker 镜像是应该遵守的有些原则
     
    • 基础镜像尽量小
    • 对于构建进行缓存处理
    • 构建的docker 的文件层数尽量少
    • 能直接运行的,就别进行重复构建了(比如go)
     
    yarn 在我们进行本地构建的时候可以帮助我们减少很多资源的在重复下载,以及校验,
    加速docker 项目的构建
     
    以下为一个简单的例子,具体与npm的比较就不用了,效果太明显了
    备注:
         此次docker nodejs 镜像使用的是 kkarczmarczyk/node-yarn (下载次数比较高)
         nodekjs 的框架使用 hapi
     
    1. 项目初始化
    yarn init 
    
    yarn add hapi
    
    package.json  add
    
    "scripts":{
    
       "run":"node index.js"
    }
    2. nodejs 简单代码
      
        index.js
    const Hapi = require('hapi');
    
    // Create a server with a host and port
    const server = new Hapi.Server();
    server.connection({ 
        host: '0.0.0.0', 
        port: 8009 
    });
    
    // Add the route
    server.route({
        method: 'GET',
        path:'/hello', 
        handler: function (request, reply) {
    
            return reply('hello world');
        }
    });
    
    // Start the server
    server.start((err) => {
    
        if (err) {
            throw err;
        }
        console.log('Server running at:', server.info.uri);
    });
    3. docker 配置
        
       Dockerfile
    FROM kkarczmarczyk/node-yarn
    RUN mkdir -p /home/nodejs/app
    WORKDIR /home/nodejs/app
    COPY . /home/nodejs/app
    RUN yarn 
    CMD ["yarn","run","run"]
    4. 项目结构
     
     
    5. 构建&&运行
    docker build -t demo .
    docker run -d -p 8009:8009 demo
    6.  构建效果
     
     
    从上图明显看到每次构建都是走的cache 对于nodejs 包也是,这样可以很快的进行镜像的
    构建,明显如直接 npm 的快很多,建议大家在生产环境多使用,高效快速就是王道。
     
    7. 参考资料
    https://hub.docker.com/r/kkarczmarczyk/node-yarn/
    https://yarnpkg.com/zh-Hans/
    https://hapijs.com/
  • 相关阅读:
    添加组合索引时,做相等运算字段应该放在最前面
    常用位运算
    redis php扩展简单使用
    mysql优化之简单概念
    mysql优化之sql语句优化
    简单画图 gd库函数
    win下 安装mongodb
    伪静态之实际应用
    tomcat win简单配置
    docker
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/7815891.html
Copyright © 2020-2023  润新知