docker - (2)使用docker部署NestJs项目

108 阅读1分钟

近期在学习docker相关知识,本文主要用于个人学习docker笔记。

拉取mysql镜像,创建容器

     docker pull mysql:latest
     
     # 查看是否拉取成功
     docker images 
        
     # 跑一个容器   
     docker run -d -p 3006:3006 -v mysqlconf:/etc/mysql -e MYSQL_ROOT_PASSWORD=xxxx --name zjf-admin-mysql mysql:latese
     
     # 查看容器是否运行成功
     docker ps 

     # 进去mysql容器 创建数据库
     docker exect -it zjf-admin-mysql bash

     # 登录mysql
     mysql -u root -p
     #输入密码xxx,就是上面创建容器时设置的 MYSQL_ROOT_PASSWORD=xxxx
     
     #创建数据库,注意加分号
     CREATE DATABASE zjfserver;
     
     #查看数据库
     SHOW DATABASE;
     
     # 退出后,重启mysql容器
     docker restart zjf-admin-mysql

编写dockerfile文件


# 使用一个 Node.js 镜像作为基础镜像
FROM node:16.18.0

# 设置时区
ENV TZ=Asia/Shanghai \
    DEBIAN_FRONTEND=noninteractive

# 创建工作目录
RUN mkdir /app

WORKDIR /app

COPY . .

RUN yarn

# 暴露 Nest.js 默认端口
EXPOSE 3008

# 运行 Nest.js 应用
CMD ["yarn", "start:prod"]

将本地项目丢带服务器上,我这边是使用git

    ssh root@服务器公网ip
    # 输入密码
    
    # 安装git
    yum install git 
    
    # 查看是否安装成功 
    git --version

    # 从远程仓库拉取代码,
    # 在这之前将本地的代码 mysql生产环境的host,用户名,密码都改好上传到远程仓库。
    git clone https://github.com/xxxxxx.git
    

将项目打包成镜像

   # 基于项目的dockerfile 打包镜像
   docker build -t zjf-nest-app .
   
   # 跑一个容器
   docker run -d -p 3008:3008 --name zjf-nest-app zjf-nest-app

以上就将一个nestjs项目部署完成了,在浏览器上即可访问了。