美文网首页
2022-05-15-🐓🥚docker打包node.js服务

2022-05-15-🐓🥚docker打包node.js服务

作者: 沐深 | 来源:发表于2022-05-15 00:55 被阅读0次

    背景:

    把node.js服务放在linux上,每次都要搞一堆配置。

    解决方法:

    使用docker打包
    有当前node 项目,向前端展示某个文件下的文件



    app.js 展示文件列表的小软件

    const express = require('express');
    const app = express();
    const fs = require('fs');
    app.use(express.static('public'));
    
    const path = require('path');
    let rootPath = path.resolve(__dirname, './public');
    
    app.get('/', (req, res) => {
      res.sendFile(`${__dirname}/index.html`);
    });
    
    
    app.get('/file/getList',(req,res,next) => {
      var readDir = fs.readdirSync(rootPath);
      console.log(readDir);
      res.send({
        code: 200,
        data: readDir
      })
    })
    
    app.use(express.static('public'))
      .listen(3000);
    
    

    安装dokcer:

    $ brew install --cask --appdir=/Applications docker

    创建 Dockerfile 文件:

    touch Dockerfile

    FROM node:8-alpine 
    
    # Create app directory
    WORKDIR /app
    
    COPY package.json app.js index.html ./
    COPY public ./public
    
    #  Install app dependencies
    RUN npm install
    
    CMD ["npm", "start"]
    

    构建docker镜像

    docker build . -t chenxiaobei/node-alpine

    docker的镜像会运行在容器上 --name [容器名], 不写默认镜像名

    ps: 镜像名/前是docker hub你的用户名

    查看docker内文件是否完整

    docker run -it --entrypoint sh chenxiaobei/node-alpine

    运行docker镜像

    docker run -p 3000:3000 -d chenxiaobei/node-alpine

    发布镜像(也可以发布到阿里云私有镜像)

    docker push chenxiaobei/node-alpine
    https://hub.docker.com/上查看

    linux安装docker

    curl -sSL https://get.daocloud.io/docker | sh

    linux启动docker

    systemctl start docker

    服务器拉取镜像

    docker pull chenxiaobei/node-alpine

    服务器运行镜像

    docker run -d it -p 3000:3000 chenxiaobei/node-alpine

    查看容器

    docker ps -a
    

    进入docker容器

    dokcer exec -it [容器ID/容器name] bash
    

    docker 文件映射

    在创建Docker容器时,想要与本地路径进行映射共享文件,使用docker run -v指令,例如我需要将本地的的/root/code路径映射到容器内的/data/code路径,使用如下指令,冒号前为宿主机路径,冒号后为容器路径,其中xxx为镜像完整路径

    docker run -it -v /root/code:/data/code -d -p 3000:3000  chenxiaobei/node-alpine
    

    相关文章

      网友评论

          本文标题:2022-05-15-🐓🥚docker打包node.js服务

          本文链接:https://www.haomeiwen.com/subject/aqdvurtx.html