Docker 入门 (12) dockerfile 部署nodejs项目

目标:

1. 使用dockerfile部署一个 nodejs restful api 项目


准备:

由于时间关系 ,我已经写好项目代码了 , 我们直接去下载吧 一个restful api 项目 , 

1. 从仓库克隆代码 ,复制到今天的教程目录吧 ,

2. server 重名为 server_dockerfile 


操作流程:

# 进入工作目录

cd ./server_dockerfile 

# 新建一个 dockerfile文件 (一定要用 dockerfile  这个文件名!)

dockerfile 文件内容

# 指定镜像
FROM node
# 在镜像容器中 创建 一个 目录 
RUN mkdir -p /home/server
# 把新建的目录指定为工作目录 
WORKDIR /home/server
# 复制本机内容到 容器内部的 工作目中 , " . " 是指 dockerfile 文件 相对的当前目录下的所有文件 , 当然你也可以 指定目录
COPY . /home/server
# 指定下载依赖淘宝镜像 , 学过前端都懂吧~
RUN npm config set registry https://registry.npm.taobao.org
# 习惯了使用cnpm ~~
RUN npm i cnpm -g
# 安装依赖 
RUN cnpm i
# 对本机暴露一个 3000端口 , 我的代码是写死了 启用3000 端口的 , 所以这里要使用3000
EXPOSE 3000
# 在镜像运行时候 , 执行安装依赖以及启动命令
CMD cnpm i&&  npm run dev

指令解释:
FROM  #指定要使用的镜像
RUN #镜像构建时候执行
CMD #镜像运行时候执行
WORKDIR  #指定工作目录
COPY  #用于 拷贝本机代码到容器内部
EXPOSE  #对宿主机暴露某个端口

构建自定义镜像 mynodejsproject , 注意这里镜像名称只能全部是小写 , 不能使用驼峰和其他符号

docker build -t mynodejsproject  .

那个 " . " 别漏了 , 是指当前目录下面的 dockerfile 文件 , docker 会读取dockerfile 里面内容,  打包一个新的镜像 ,由于涉及到 拉取 node 镜像 和下载项目 依赖 , 时间会较长 , 如果出现失败情况

请使用 镜像删除指令 , 重新构建

# 查看镜像打包结果

docker images

# 启动

docker run --rm -d --name my-test-node -p 8070:3000  mynodejsproject 

# 查看启动结果

docker ps


结语:

使用ip+8070端口 尝试访问 127.0.0.1:8070/api/user/find , 看到返回数据代表部署成功!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容