如何把 Plane 社区版部署到 Docker Swarm 集群并执行部署、升级与日志查看

如何把 Plane 社区版部署到 Docker Swarm 集群并执行部署、升级与日志查看 如何把 Plane 社区版部署到 Docker Swarm 集群并执行部署、升级与日志查看【免费下载链接】plane Open-source Jira, Linear, Monday, and ClickUp alternative. Plane is a modern project management platform to manage tasks, sprints, docs, and triage.项目地址: https://gitcode.com/GitHub_Trending/pl/plane这篇文章面向需要在自己的 Docker 环境里自建 Plane社区版的场景通过官方提供的swarm.sh脚本在 Docker Swarm 上部署 Plane 服务栈并掌握后续的版本升级和日志查看操作。完成本文流程后你会得到一个可访问的 Plane 实例并知道如何确认部署是否成功、如何升级到新版本、如何定位某个服务的日志。整条操作路径来自仓库中的 Docker Swarm 部署脚本 与 自托管指南脚本中的所有菜单选项、检查命令和服务名都以这两份文件为准。准备条件自托管指南 列出的前置要求Docker 已安装并处于运行状态操作系统支持 bash 脚本Ubuntu、Linux AMI、macOSWindows 系统需要 gitbash执行脚本的用户必须有权访问 docker 服务指南建议在大多数情况下用sudo su切换到 root 用户后再执行后续步骤后续所有步骤都在终端或 gitbash窗口中运行。Swarm 部署脚本 swarm.sh 内部通过docker stack deploy、docker service ls、docker stack ps等命令管理栈因此 Docker 必须已启用 Swarm 模式并可用。下载脚本并初始化配置在部署目录中执行mkdir plane-selfhost cd plane-selfhost curl -fsSL -o setup.sh https://github.com/makeplane/plane/releases/latest/download/swarm.sh chmod x setup.shchmod x会为脚本添加可执行权限。首次安装时运行./setup.sh脚本显示标题后给出操作菜单Select an Action you want to perform: 1) Deploy Stack 2) Remove Stack 3) View Stack Status 4) Redeploy Stack 5) Upgrade 6) View Logs 7) Exit Action [3]: 1首次设置输入1Deploy Stack。如果当前目录还没有plane-app/docker-compose.yml和plane-app/plane.env脚本会自动检查最新发布版本并下载这两个文件到plane-app目录其中variables.env模板的内容会被写入plane.env旧文件会先备份为.bak并归档到plane-app/archive/。文件下载完成后菜单会再次弹出此时输入7退出。配置 plane.env启动前需要编辑plane-app/plane.env用任意文本编辑器打开。指南明确建议重点关注以下三个键LISTEN_HTTP_PORT默认80确认所选端口未被占用例如改为LISTEN_HTTP_PORT8080WEB_URL默认http://localhost改为你计划使用的 FQDN 加上端口例如https://plane.example.com:8080或http://[IP-ADDRESS]:8080CORS_ALLOWED_ORIGINS默认http://localhost同样改为你实际访问的 FQDN 加端口。模板环境变量定义见 variables.env。其中有两处注释提醒在生产部署前修改SECRET_KEY注释给出两种生成方式python3 -c from django.utils.crypto import get_random_secret_key; print(get_random_secret_key())或openssl rand -hex 32和LIVE_SERVER_SECRET_KEY生成方式openssl rand -hex 32。另外如果计划邀请团队成员指南建议同时配置EMAIL SETTINGS相关变量否则无法发送邀请邮件。部署服务栈再次运行./setup.sh在菜单中选择1Deploy Stack。部署时会提示Enter stack name [plane]:直接回车使用默认栈名plane也可以输入自定义名称。栈名会被写入plane.env的STACK_NAME脚本每次启动时优先从该文件读取保证后续操作针对同一个栈。选择部署后脚本内部会依次完成以下动作这些是 swarm.sh 的实际逻辑加载plane.env中的环境变量执行docker stack deploy -c plane-app/docker-compose.yml 栈名部署栈等待migrator服务结束然后检查其最近一个容器的退出码退出码为0输出Data Migration completed successfully ✅数据库迁移完成退出码非0输出Server failed to start ❌和Migration failed with exit code: 码脚本提示检查migrator服务日志并给出停止服务的命令./swarm.sh stop然后退出轮询api服务的运行容器直到容器日志中出现Application Startup Complete全部通过后输出Plane Server started successfully ✅以及访问地址You can access the application at WEB_URL。如果api服务未能在栈中出现脚本会输出Plane Server failed to start ❌并提示检查api服务日志。遇到这两种失败时下一步就是按提示用日志菜单查看对应服务见下文。验证部署结果用浏览器访问plane.env中配置的WEB_URL例如http://[IP-ADDRESS]:8080能看到 Plane 页面即表示服务已对外可用。命令行侧可以再次运行./setup.sh选择3View Stack Status。该操作执行docker stack ps 栈名列出栈内各服务的任务状态用于确认所有服务都处于运行状态。升级 Plane 版本指南建议保持 Plane 更新到最新发布版。运行./setup.sh在菜单中选择5Upgrade。升级流程按 swarm.sh 的实现执行通过 GitHub API 查询makeplane/plane的最新 release tag并与当前APP_RELEASE比较如果已是最新版会提示You are already using the latest release并结束提示Do you want to upgrade to the latest release (tag)? Continue? [y/N]:输入y才继续把现有plane.env备份为plane.env.bak下载最新 release 的docker-compose.yml与variables.env下载失败时回退到仓库 raw 地址两者都失败则恢复旧文件并退出将旧plane.env中已有的变量值同步回新文件并写入新的APP_RELEASE即你之前配置的WEB_URL、端口等值会保留自动执行 Remove Stack Deploy Stackredeploy完成切换。升级完成后按 自托管指南 的提醒检查plane.env是否有新增或变化的键需要调整调整后再确认栈处于运行状态即可。查看服务日志运行./setup.sh选择6View Logs。脚本先弹出服务子菜单Select a Service you want to view the logs for: 1) Web 2) Space 3) API 4) Worker 5) Beat-Worker 6) Migrator 7) Proxy 8) Redis 9) Postgres 10) Minio 11) RabbitMQ 0) Back to Main Menu Service: 3选择服务号后脚本按以下方式输出日志该服务只有 1 个运行中容器时直接跟随该容器日志docker container logs -f提示按CtrlC或q退出有多个容器时如设置了多副本列出容器编号让你选择其中一个没有运行中容器但服务存在时改用docker service logs 栈名_服务 -f。以 API 服务为例自托管指南 给出的示例输出文档示例实际日志时间戳和行内容会不同api-1 | Waiting for database... api-1 | Database available! api-1 | No migrations Pending. Starting processes ... api-1 | Instance registered ... api-1 | [2024-05-02 03:56:03 0000] [25] [INFO] Application startup complete.看到Application startup complete.这类行说明 API 启动流程走到了脚本判定成功的同一标志部署时脚本正是等待日志中出现Application Startup Complete。按CtrlC退出日志视图会回到主菜单。重部署与移除栈菜单中还有两个与运维相关的选项使用时注意其影响4) Redeploy Stack先执行 Remove 再执行 Deploy即栈会短暂下线后重新拉起。指南建议在修改了plane.env但不想手动停栈、或发现服务异常时使用2) Remove Stack执行docker stack rm 栈名并等待服务全部移除会停止整个 Plane 栈数据卷不会被该命令删除但服务将不可用仅在确定要下线或重建栈时选择。部署、升级、查看日志三条主路径都通过同一个./setup.sh入口完成新机器上按 1 初始化并配置plane.env再按 1 部署用 3 和浏览器访问验证后续用 5 升级、用 6 排障即为该 Swarm 部署形态的完整日常操作循环。【免费下载链接】plane Open-source Jira, Linear, Monday, and ClickUp alternative. Plane is a modern project management platform to manage tasks, sprints, docs, and triage.项目地址: https://gitcode.com/GitHub_Trending/pl/plane创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考