avatar

mdo

Hello

  • 首页
  • 知识库
  • 归档
  • 标签
  • 关于
主页 一键部署方案
文章

一键部署方案

发表于 2026-09-3 更新于 2026-09- 3
作者 mdo
10~13 分钟 阅读

使用 Docker 和 Docker-compose 部署可以彻底解决 CentOS 环境中 Node.js 版本和依赖编译的问题。

以下是为您定制的一键部署方案,包含 Dockerfile、docker-compose.yml 以及一个一键执行的 Shell 脚本。


1. 准备配置文件

请在服务器的任意空目录(例如 /opt/deepseek-harness-docker)中创建以下三个文件:

📄 文件一:Dockerfile

用于将前端及打包环境容器化。

dockerfile

# 构建阶段
FROM node:18-alpine AS builder
WORKDIR /app
RUN npm install -g pnpm
COPY . .
RUN pnpm install && pnpm build

# 运行阶段
FROM node:18-alpine AS runner
WORKDIR /app
RUN npm install -g pnpm
COPY --from=builder /app /app

EXPOSE 7860
ENV HOST=0.0.0.0
ENV PORT=7860
ENV NODE_ENV=production

CMD ["pnpm", "start"]

请谨慎使用此类代码。

📄 文件二:docker-compose.yml

定义容器的运行参数及端口映射。

yaml

version: '3.8'

services:
  deepseek-harness:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: deepseek-harness
    restart: always
    ports:
      - "7860:7860"
    environment:
      - HOST=0.0.0.0
      - PORT=7860
      - NODE_ENV=production

请谨慎使用此类代码。

📄 文件三:deploy.sh(一键运行脚本)

包含自动检测并安装 Docker 环境、拉取源码、编译并启动的核心逻辑。

bash

#!/bin/bash
set -e

# 请在此处替换为真正的 DeepSeek Harness 仓库地址
REPO_URL="<DeepSeek-Harness仓库地址>"
WORK_DIR=$(pwd)

echo "=== 1. 检查并安装 Docker & Docker Compose ==="
if ! command -v docker &> /dev/null; then
    echo "未检测到 Docker,开始安装..."
    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://docker.com
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    sudo systemctl start docker
    sudo systemctl enable docker
fi

if ! command -v docker-compose &> /dev/null; then
    echo "未检测到 Docker Compose,开始安装..."
    sudo curl -L "https://github.com(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
fi

echo "=== 2. 克隆/更新源码 ==="
if [ ! -d "src_code" ]; then
    git clone "$REPO_URL" src_code
else
    echo "源码目录已存在,正在拉取最新代码..."
    cd src_code && git pull && cd ..
fi

echo "=== 3. 复制 Docker 配置文件 ==="
cp Dockerfile src_code/
cp docker-compose.yml src_code/

echo "=== 4. 启动容器构建与运行 ==="
cd src_code
docker-compose up -d --build

echo "=== 5. 配置防火墙放行 7860 端口 ==="
if command -v firewall-cmd &> /dev/null; then
    sudo firewall-cmd --zone=public --add-port=7860/tcp --permanent || true
    sudo firewall-cmd --reload || true
fi

echo "============================================="
echo "🎉 部署完成!"
echo "您可以尝试访问:http://<您的服务器IP>:7860"
echo "查看运行日志命令:docker-compose logs -f"
echo "============================================="

请谨慎使用此类代码。


2. 使用方法

  1. 将上述三个文件放至同一个目录下。

  2. 打开 deploy.sh,将其中的 <DeepSeek-Harness仓库地址> 替换为您实际的 Git 仓库 URL。

  3. 给脚本赋予执行权限并运行:

    bash

    chmod +x deploy.sh
    ./deploy.sh
    

    请谨慎使用此类代码。


3. 常用运维命令

后续管理该容器时,请进入 src_code 目录下执行:

  • 查看运行日志:docker-compose logs -f

  • 停止服务:docker-compose down

  • 重新启动:docker-compose restart

  • 更新代码并重新编译:直接再次运行 ./deploy.sh 即可自动拉取最新代码并静默完成热重构。

如果需要进一步完善该方案,请告诉我:

  • 该 Harness 项目是否需要连接 Redis 或 PostgreSQL 等外部数据库(我可以将其一并编入 docker-compose.yml 中)?

  • 是否需要为其配置 Nginx 反向代理和 SSL 证书 以支持安全的 https:// 访问?

许可协议:  CC BY 4.0
分享

相关文章

下一篇

编码风格和架构规范

上一篇

crewAi 是如何管理多个agent

最近更新

  • 比尔盖茨的智慧:想多赚钱,就每天循环做这3件事
  • iOS 侧载(Sideloading)工具
  • 程序员越想创业,越不要急着动手
  • 注册 Chat Participant
  • 中秋给在外游子的一封信

热门标签

API CodeGeex Coding Cursor DeepSeek Docker Gitkraken Harness Laravel Management

目录

©2026 mdo. 保留部分权利。