使用docker部署优点

  • 把所有的环境打包在一块,不再需要考虑开发环境问题。

  • 如果上线发生了错误,可以很快回滚到上一个可用的镜像,减少损失

Dockerfile文件编写

编写步骤为

1.构建一个镜像需要一个node环境

#1、基于镜像node,版本选择合适稳定版本即可
FROM node:14.6.0
Dockerfile

2.作者信息

#2、作者
MAINTAINER www.hyz.cool
Dockerfile

3.设置环境为生产环境

#3、参数,node的环境为生产环境
ENV NODE_ENV=production
Dockerfile

4.设置环境HOST

#4、任意ip
ENV HOST 0.0.0.0
Dockerfile

5.需要一个文件夹来存放项目目录

#5、容器内创建目录app
RUN mkdir -p /app
Dockerfile

6.需要把项目复制到镜像里面

#6、复制当前的内容到容器内容部目录app
COPY . /app
Dockerfile

注意上面./中间有空格

7.需要指定一个命令执行的目录

#7、切换工作目录到app
WORKDIR /app
Dockerfile

8.对外暴漏的端口

#8、暴露端口3000,默认端口
EXPOSE 3000
Dockerfile

9.设置npm远程仓库

npm install 花的时间较长,可以考虑设置成国内环境,让它下载更快一些

#9、配置npm的远程仓库
RUN npm install cnpm -g --registry=https://registry.npm.taobao.org
Dockerfile

10.清除缓存

避免缓存造成的依赖干扰导致构建失败

#10、清除缓存
RUN npm cache clean --force
Dockerfile

11.安装依赖

#11、安装依赖
RUN npm install --no-package-lock
Dockerfile

12.构建项目

#12、构建,生成dist文件
RUN npm run build
Dockerfile

13.start项目

此时项目已经在你的镜像里面构建好了,只需启动即可

#13、start
CMD ["npm","start"]
Dockerfile

完整的Dockerfle

并且亲测可以使用的Dockerfile

#1、基于镜像node,版本选择合适稳定版本即可
FROM node:14.6.0
#2、作者
MAINTAINER www.hyz.cool
#3、参数,node的环境为生产环境
ENV NODE_ENV=production
#4、任意ip
ENV HOST 0.0.0.0
#5、容器内创建目录app
RUN mkdir -p /app
#6、复制当前的内容到容器内容部目录app
COPY . /app
#7、切换工作目录到app
WORKDIR /app
#8、暴露端口3000,默认端口
EXPOSE 3000
#9、配置npm的远程仓库
RUN npm install cnpm -g --registry=https://registry.npm.taobao.org
#10、清除缓存
RUN npm cache clean --force
#11、安装依赖
RUN npm install --no-package-lock
#12、构建,生成dist文件
RUN npm run build
#13、start
CMD ["npm","start"]
Dockerfile

镜像构建

这里采用阿里云的容器镜像服务进行构建,不占用本地资源,且版本管理方便

创建阿里云容器镜像仓库

参见文章阿里云容器镜像服务使用个人版实例推送拉取镜像

根目录创建Dockerfile文件

在项目根目录创建Dockerfile文件,将上述内容写入文件并保存

Git上传代码托管平台

阿里云、Github都可以,本文采用阿里云代码托管
打开Terminal,cd回到项目根目录,依次执行一下命令(已经初始化过git项目,如没有可参见阿里云代码托管创建仓库

git add .
git commit -m"Finish the project."
git push -u origin master
git tag release-v1.0
git push -u origin release-v1.0
shell

上传之后阿里云这边就会自动构建,可以前往控制台查看

构建成功之后见下图

构建成功

docker 部署

拉取镜像

进入自己的镜像仓库详情页首页即可看到登录信息

然后根据详情页步骤1、2即可完成镜像的拉取

运行容器

1.查看镜像名称和版本号

执行docker命令

docker images
shell

查看镜像名称和版本号

2.运行

执行docker命令

docker run -d -p3000:3000 --name=你希望的容器名称 镜像名称:版本号
shell
打赏
  • 微信
  • 支付宝
评论
来发评论吧~
···

歌手: