美文网首页
编写前端开发环境的docker 镜像并发布及使用教程

编写前端开发环境的docker 镜像并发布及使用教程

作者: 该帐号已被查封_才怪 | 来源:发表于2021-06-11 10:29 被阅读0次

    一、前言

    如果之前没有接触过docker,建议把 https://docs.docker.com/get-started/ 中的part1-part10看完并实现一遍再来看本篇文章。

    二、目标

    制作一个docker 镜像,其内置了Node v12.22、 npm源管理器nrm、单页面脚手架wlg-cli、多页面脚手架mp-cli-lc、browser-sync插件及curl、vim和git等,无需在主机中安装且这样统一了前端开发环境。

    三、编写docker 镜像并发布

    1、编写Dockerfile文件

    FROM node:12.22-slim
    RUN apt-get update && apt-get install -y curl && apt-get install -y vim && apt-get install -y git
    #CMD curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
    #CMD source ~/.bashrc
    #RUN apt-get update && apt-get install -y vim  && apt-get install -y git
    RUN npm install -g nrm
    RUN npm install -g browser-sync
    #RUN npm install -g gulp@3.9.1
    RUN npm install -g mp-cli-lc
    RUN npm install -g wlg-cli
    #RUN npm install -g nodemon
    ENV CHOKIDAR_USEPOLLING=true
    #EXPOSE 3000 可以通过container link,被其他link的container访问到
    COPY . ./customConfig
    WORKDIR /customConfig
    # CMD node index.js
    
    
    

    2、构建镜像文件 docker image build -t front-end-env . (这里取镜像名称为front-end-env)
    3、使用命令行登录docker docker login -u 你的docker用户名
    4、打标签 docker tag front-end-env 你的docker用户名/front-end-env
    5、 上传至仓库 docker push 你的docker用户名/front-end-env

    四、使用已发布的docker 镜像

    1、使用如下指令进入docker容器内部
    docker container run -p 3000:3000 -it 你的用户名/front-end-env /bin/bash
    (-p 3000:3000将容器内的3000端口暴露给主机3000端口,下图中我没有加这个)

    image.png
    可以看到,执行上述指令后,会进入了我们配置好的customConfig文件夹里了

    2、验证docker容器内部的nrm是否安装成功

    image.png
    可以看到我们可以直接使用了nrm等工具了
    3、docker容器内部启动一个前端页面服务,http://localhost:3000,在主机上如何访问呢?
    其实,因为启动时带了-p 3000:3000
    image.png
    ,因此通过访问主机的http://localhost:3000也就可以访问到docker镜像内部的http://localhost:3000前端页面了
    4、如果想把主机的当前目录、文件等绑定挂载到docker容器内,以便在主机中使用docker容器内部的工具该怎么做呢?
    如果在docker容器内,则使用exit退出docker容器,然后在PowerShell (windows操作系统)执行下面的指令:
     docker container run   -v "$(pwd):/fromHostDir" -p 3000:3000  -it front-end-env   /bin/bash
    
    image.png

    上图,可以看到我们成功的将主机的当前目录及文件挂载绑定到docker容器内了,进入到docker容器内后我们创建一个文件夹,在主机也会同步的创建了相同的文件夹,因为此时他们是同步的。ps:如果使用vscode,可以试试Remote-Containers 插件,可以更简单。(本人没有亲测过)

    题外话:
    1、借助虚拟机和Vagrant也可以实现类似统一环境功能。
    2、使用Docker Compose可以简化上述操作

    推荐资料:
    1、https://wurang.net/webpack_hmr/
    2、https://juejin.cn/post/6932808129189150734
    3、https://www.cnblogs.com/pomelott/p/13325328.html
    4、docker中的expose https://blog.csdn.net/weixin_43944305/article/details/103116557

    相关文章

      网友评论

          本文标题:编写前端开发环境的docker 镜像并发布及使用教程

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