首页
/ NewsNow项目Docker Compose部署指南

NewsNow项目Docker Compose部署指南

2025-07-06 04:42:21作者:滕妙奇

项目概述

NewsNow是一个基于容器化技术的新闻聚合服务,通过Docker Compose可以快速部署完整的运行环境。本文将详细介绍如何使用Docker Compose文件来部署NewsNow项目。

环境准备

在开始部署前,请确保您的系统已安装以下组件:

  • Docker Engine 19.03.0+
  • Docker Compose 1.25.0+

配置文件解析

服务定义

services:
  newsnow:
    image: ghcr.io/ourongxing/newsnow:latest
    container_name: newsnow
    ports:
      - '4444:4444'
    volumes:
      - newsnow_data:/usr/app/.data
    environment:
      - HOST=0.0.0.0
      - PORT=4444
      - NODE_ENV=production
      - G_CLIENT_ID=
      - G_CLIENT_SECRET=
      - JWT_SECRET=
      - INIT_TABLE=true
      - ENABLE_CACHE=true
  1. 镜像配置:使用官方提供的最新镜像,确保获取最新功能和修复

  2. 端口映射:将容器内部的4444端口映射到主机的4444端口,可根据需要修改左侧主机端口

  3. 数据卷:使用命名卷newsnow_data持久化存储应用数据,确保容器重启后数据不丢失

  4. 环境变量

    • HOSTPORT:配置服务监听地址和端口
    • NODE_ENV:设置为生产环境
    • G_CLIENT_IDG_CLIENT_SECRET:Google API认证所需凭证
    • JWT_SECRET:JWT令牌签名密钥,建议设置为强密码
    • INIT_TABLE:是否初始化数据库表结构
    • ENABLE_CACHE:是否启用缓存功能

数据卷配置

volumes:
  newsnow_data:
    name: newsnow_data

定义了一个名为newsnow_data的持久化数据卷,用于存储应用的持久化数据,如数据库文件、缓存等。

部署步骤

  1. 创建项目目录并进入:

    mkdir newsnow && cd newsnow
    
  2. 创建docker-compose.yml文件,将上述配置内容复制进去

  3. 修改环境变量:

    • 填写有效的G_CLIENT_IDG_CLIENT_SECRET
    • 设置强密码作为JWT_SECRET
    • 其他配置根据实际需求调整
  4. 启动服务:

    docker-compose up -d
    
  5. 验证服务:

    docker-compose logs -f
    

    查看日志确认服务正常运行

配置建议

  1. 安全配置

    • 强烈建议修改默认端口4444为其他端口
    • JWT_SECRET应使用强密码生成器生成
    • 定期轮换API凭证
  2. 性能调优

    • 可根据服务器资源情况添加资源限制
    • 对于高并发场景,考虑添加replicas配置
  3. 数据备份

    • 定期备份newsnow_data卷数据
    • 可配置自动备份策略

常见问题

  1. 端口冲突:如果4444端口已被占用,修改ports配置中的主机端口

  2. 权限问题:确保Docker有权限创建和挂载数据卷

  3. 初始化失败:首次启动时INIT_TABLE=true,后续启动可设为false

  4. 缓存问题:如果遇到数据不一致,可临时设置ENABLE_CACHE=false排查

维护建议

  1. 定期执行docker-compose pull获取最新镜像

  2. 监控容器资源使用情况

  3. 设置日志轮转策略,避免日志文件过大

通过以上步骤,您可以成功部署NewsNow服务。根据实际需求,您还可以进一步定制配置,如添加Nginx反向代理、配置HTTPS等。