网页
综合
更新时间 2026-11-13 16:08:27
Docker 安装 | 泡泡 IM 开发文档
自动蜘蛛
www.popoim.com
正文约 1373 字
Docker Compose 管理 PHP 运行环境、MySQL 和 Nginx。服务端源码放在宿主机 /srv/popoim,以目录挂载方式供容器读取;安装生成的配置、日志和资源仍保留在宿主机。
使用 Docker Engine 与 Compose 插件。Ubuntu 24.04 / 26.04 可安装发行版提供的软件包:
其他发行版参考 Docker 官方安装说明。以下命令均在服务端源码目录执行。
将 popoim-web.zip 上传到服务器家目录;文件名不带客户标识,包内顶层目录为 im-web/。以下用于空目录首次安装:
编辑 .env,分别为 MYSQL_PASSWORD 和 MYSQL_ROOT_PASSWORD 设置不同的随机强密码。保留 MYSQL_DATABASE=popoim、MYSQL_USER=popoim,或按需修改。
默认入口为 127.0.0.1:8080,由宿主机 Nginx 提供 HTTPS。仅在隔离网络中需要直接访问时,将 HTTP_BIND 改成所需的宿主机地址。
PHP 环境包含聊天、图片和媒体处理需要的扩展、FFmpeg 和 Composer;构建上下文排除了业务源码。MySQL 自动设置 ngram_token_size=1,数据保存在 mysql-data 卷。Nginx 只把站点公开目录作为静态资源入口。
第一次启动需等待 MySQL 健康检查通过:
宿主机 Nginx 将 example.com 代理到 127.0.0.1:8080。location / 需要保留 WebSocket 升级头:
站点同时设置 client_max_body_size 128m,配置 HTTPS 后访问 https://example.com/install。
替换宿主机源码时保留 .env、部署配置、资源及会话。依赖变更后重新安装,再重启:
普通 PHP 业务源码修改后,可以在宿主源码目录执行平滑 reload,使容器中的工作进程重新加载代码:
源码通过目录挂载直接提供给容器,修改业务源码无需重建镜像。Nginx 配置目录 deploy/docker-nginx/ 同样采用目录挂载;修改后先执行 sudo docker compose exec -T --interactive=false nginx nginx -t,通过后执行 sudo docker compose exec -T --interactive=false nginx nginx -s reload。进程数量、监听端口以及不参与 reload 的 Gateway / Register 进程代码变更时,执行 sudo docker compose restart app。前端 Vue / TypeScript 先重新构建,再更新生成的静态文件。
只有 PHP 扩展或 Dockerfile 变更时才需要重新构建环境镜像。不要在普通更新中执行 docker compose down -v,它会删除数据库卷。
备份范围包括 MySQL、宿主机 public/uploads/、config/database.php、plugin/sdk/config/auth.php 和 .env。详细步骤见备份与恢复。
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。