Skip to content

Docker部署

步骤 1:修改docker-compose.yml

根据你的实际项目配置变量内容,填写你所支持的部分。

完整的文件内容如下:

bash
services:
  duoge-website:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: nuxtpro-admin
    restart: unless-stopped
    ports:
      - "3002:3002"
    environment:
      PORT: 3002
      DATABASE_URL: "mysql://username:password@ip:port/nuxtpro"
      BETTER_AUTH_SECRET: B3E4q0JYr5pRpQRwvxo9jfOLz48TKrJL # 随机32位密钥
      BETTER_AUTH_URL: http://localhost:3002
      NUXT_RESEND_API_KEY: # your resend api key
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries:1", "--spider", "http://localhost:3002"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

步骤 2:修改Dockerfile端口

将此处的PORT端口改成你想自定义的即可。务必和你项目里的env的以及docker-compose.yml的一致。

完整的文件内容如下:

bash
# 多阶段构建
FROM node:20-alpine AS builder

WORKDIR /app

# 复制依赖文件
COPY package.json pnpm-lock.yaml ./

# 安装pnpm并安装依赖
RUN npm install -g pnpm && pnpm install --frozen-lockfile

# 复制源代码
COPY . .

# 构建应用
RUN pnpm run build:prod

# 生产镜像
FROM node:20-alpine AS runner

WORKDIR /app

# 只复制构建产物
COPY --from=builder /app/.output ./.output

# 暴露端口
EXPOSE 3002

# 设置环境变量
ENV NODE_ENV=production
ENV PORT=3002

# 启动应用
CMD ["node", ".output/server/index.mjs"]

步骤 3:构建并启动容器

进入到保存docker-compose.yml 文件的目录,使用命令等待项目构建成功

bash
docker-compose up -d --build

步骤 4:查看日志

使用命令查看项目运行情况

bash
docker-compose logs -f

此处附上停止容器命令

bash
docker-compose down

此处附上重启容器命令

bash
docker-compose restart