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

pgrok/pgrok项目Docker Compose部署指南

2025-07-09 07:52:50作者:董宙帆

项目概述

pgrok/pgrok是一个内网穿透工具,类似于ngrok,它允许开发者将本地服务暴露到公网。通过Docker Compose部署可以快速搭建pgrok服务端(pgrokd)及其依赖的PostgreSQL数据库。

部署架构解析

这个docker-compose.yml文件定义了两个核心服务:

  1. pgrokd服务:pgrok的核心服务端组件
  2. PostgreSQL服务:pgrokd的后端数据库存储

服务配置详解

pgrokd服务配置

pgrokd:
  image: "ghcr.io/pgrok/pgrokd:latest"
  restart: always
  volumes:
    - "./pgrokd:/var/opt/pgrokd"
  ports:
    - "3320:3320"
    - "3000:3000"
    - "2222:2222"
  depends_on:
    - postgres

关键配置说明:

  • 镜像版本:使用最新的pgrokd官方镜像
  • 重启策略:设置为always确保服务异常退出后自动重启
  • 数据卷:将本地./pgrokd目录挂载到容器内的/var/opt/pgrokd,用于持久化配置数据
  • 端口映射
    • 3320端口:可能是pgrokd的管理API端口
    • 3000端口:通常用于HTTP隧道
    • 2222端口:通常用于TCP隧道或SSH隧道
  • 依赖关系:明确声明依赖PostgreSQL服务

PostgreSQL服务配置

postgres:
  image: postgres
  restart: always
  volumes:
    - "pg_data:/var/lib/postgresql/data"
  environment:
    POSTGRES_DB: pgrokd
    POSTGRES_USER: "${POSTGRES_USER}"
    POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"

关键配置说明:

  • 数据持久化:使用命名卷pg_data持久化数据库数据
  • 环境变量
    • 指定数据库名称为pgrokd
    • 用户名和密码通过环境变量注入(需要提前设置)
  • 自动重启:同样配置为always确保高可用

部署前准备

  1. 创建.env文件,设置PostgreSQL凭据:

    POSTGRES_USER=your_username
    POSTGRES_PASSWORD=your_strong_password
    
  2. 确保Docker和Docker Compose已安装并正常运行

部署步骤

  1. 将docker-compose.yml和.env文件放在同一目录
  2. 创建本地目录用于pgrokd数据持久化:
    mkdir pgrokd
    
  3. 启动服务:
    docker-compose up -d
    

验证部署

  1. 检查容器状态:
    docker-compose ps
    
  2. 查看pgrokd日志:
    docker-compose logs pgrokd
    
  3. 测试端口连通性:
    curl http://localhost:3000
    

运维建议

  1. 数据备份:定期备份pg_data卷和本地pgrokd目录
  2. 版本升级:更新镜像版本时,先停止服务再重新部署
  3. 安全配置
    • 修改默认端口
    • 配置防火墙规则
    • 使用TLS加密通信

常见问题排查

  1. 端口冲突:确保3320、3000和2222端口未被占用
  2. 权限问题:检查pgrokd目录的读写权限
  3. 数据库连接失败:验证.env文件中的凭据是否正确

通过以上配置和步骤,您可以快速搭建一个功能完整的pgrok服务端环境,为内网穿透服务提供稳定支持。