RocketMap项目Docker部署完全指南

RocketMap项目Docker部署完全指南

RocketMap 🌏 Live visualization of all the pokemon in your area... and more! RocketMap 项目地址: https://gitcode.com/gh_mirrors/ro/RocketMap

前言

RocketMap是一款功能强大的地图工具,而Docker作为轻量级的容器化技术,能够帮助用户快速部署RocketMap服务。本文将全面介绍如何使用Docker部署RocketMap,从基础配置到高级应用场景。

Docker基础概念

Docker是一种容器化技术,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中。相比传统虚拟机,Docker容器启动更快、资源占用更少,非常适合部署像RocketMap这样的服务。

基础部署方案

环境准备

在开始前,请确保已安装:

  1. Docker引擎
  2. 有效的Google Maps API密钥

启动RocketMap容器

最简单的启动方式如下:

docker run -d --name pogomap -p 5000:5000 \
  frostthefox/rocketmap \
    -a ptc -u username -p password \
    -k 'your-google-maps-key' \
    -l 'lat, lon' \
    -st 5

参数说明:

  • -d:后台运行容器
  • --name:指定容器名称
  • -p:端口映射(主机端口:容器端口)
  • -a:认证服务类型(ptc或google)
  • -u/-p:账号密码
  • -k:Google Maps API密钥
  • -l:扫描中心坐标
  • -st:扫描步数

容器管理

查看日志:

docker logs -f pogomap

停止服务:

docker stop pogomap

删除容器:

docker rm pogomap

访问服务

本地访问:http://localhost:5000

高级部署方案

持久化数据存储

基础方案中数据会随容器删除而丢失。要实现数据持久化,需要使用MySQL数据库。

创建Docker网络
docker network create pogonw
部署MySQL容器
docker run --name db --net=pogonw \
  -v /path/to/mysql/:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=yourpassword \
  -d mysql:5.6.32

创建数据库:

docker exec -i db mysql -pyourpassword -e 'CREATE DATABASE pogodb'
部署RocketMap并连接数据库
docker run -d --name pogomap --net=pogonw -p 5000:5000 \
  frostthefox/rocketmap \
    -a ptc -u username -p password \
    -k 'your-google-maps-key' \
    -l 'lat, lon' \
    -st 5 \
    --db-host db \
    --db-port 3306 \
    --db-name pogodb \
    --db-user root \
    --db-pass yourpassword

多工作节点部署

可以部署多个扫描节点共享同一数据库:

docker run -d --name pogomap2 --net=pogonw \
  frostthefox/rocketmap \
    -a ptc -u username2 -p password2 \
    -k 'your-google-maps-key' \
    -l 'newlat, newlon' \
    -st 5 \
    --db-host db \
    --db-port 3306 \
    --db-name pogodb \
    --db-user root \
    --db-pass yourpassword \
    -ns

-ns参数表示不启动Web服务,仅作为扫描节点。

外部访问配置

使用ngrok提供外部访问:

docker run -d --name ngrok --net=pogonw \
  wernight/ngrok \
    ngrok http pogomap:5000

获取访问地址:

docker run --rm --net=pogonw \
  appropriate/curl \
    sh -c "curl -s http://ngrok:4040/api/tunnels | grep -o 'https\?:\/\/[a-zA-Z0-9\.]\+'"

通知系统集成

如需集成通知系统(如PokeAlarm),可在启动参数中添加:

-wh 'http://hook:4000' \
--wh-threads 3 \
--webhook-updates-only

版本更新

更新RocketMap镜像:

docker pull frostthefox/rocketmap

然后重新创建容器即可。

容器监控

查看运行中的容器:

docker ps -a

检查网络详情:

docker network inspect pogonw

最佳实践建议

  1. 定期备份MySQL数据目录
  2. 为不同功能使用不同容器(Web服务、扫描节点分离)
  3. 监控容器资源使用情况
  4. 使用环境变量管理敏感信息
  5. 考虑使用Docker Compose管理多容器部署

通过本文介绍的方法,您可以灵活部署RocketMap服务,根据实际需求调整配置,实现稳定可靠的地图服务。

RocketMap 🌏 Live visualization of all the pokemon in your area... and more! RocketMap 项目地址: https://gitcode.com/gh_mirrors/ro/RocketMap

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

费好曦Lucia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值