Shaoli's Blog

使用 docker 部署 nuxt 项目(尝试)

本人目前这个博客项目是采用 手动部署 + pm2 守护进程,最近尝试用 docker 守护进程,看看效果如何。

公司的 nuxt 项目,目前是采用 gitlab CI 部署 + pm2 守护,但是pm2 有时候会没法自动重启成功,导致网站挂掉,郁闷,所以才尝试docker。


1、使用 Dockerfile 定制镜像,配置如下


# 基于 node 镜像
FROM node:13.7.0
# 指明镜像维护者
LABEL maintainer="hongsl"
# 设置环境内环境变量
ENV NODE_ENV=production
ENV HOST 0.0.0.0
# 可以先 git clone 或 pull 拉到最新代码后,安装依赖
# RUN git clone xxxxx
# RUN npm install
# 开启 3000 端口
EXPOSE 3000
# 新建工作目录
RUN mkdir -p /docker-image
# 把所有文件复制到目录(除了.dockerignore)
COPY . /docker-image
# 指定工作目录
WORKDIR /docker-image
# 国内环境使用,非国内环境使用会报错
# RUN npm config set registry https://registry.npm.taobao.org
RUN npm run build
CMD ["npm""start"]

# 把此配置文件放项目根目录,build -> run
# docker build -t nuxt-demo .
# docker run --name=nuxt-demo -p 8888:3000 -dt nuxt-demo



2、可配置忽略打包项 .dockerignore

# node_modules
.git



3、如果需要 Docker Compose来管理docker


Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。


docker-compose.yml

version: "3"
services:
  ssr:
    build:
      context: ./
      dockerfile: ./Dockerfile
    ports:
      - "8888:3000"


构建&&启动

  • 构建
docker-compose build

 

  • 启动
docker-compose up -d



    评论列表

  • 暂无评论...快来说说吧!
person
0 / 16
comment
0 / 100