Polaris复现笔记

发布时间:2026/9/2 5:13:28
Polaris复现笔记 一、Docker 究竟是什么Docker 就是一个盒子管理器。它可以创建一个个隔离小盒子容器每个盒子里面装一套程序盒子之间互不干扰。Docker管理工具总管镜像盒子的模板 / 安装包存硬盘容器按照模板跑起来的实实在在运行的小盒子内存里运行类比镜像 蛋糕模具容器 用模具烤出来的蛋糕可以烤很多个蛋糕二、为什么会产生这么多容器是谁规定的是这个项目的docker-compose.yml文件写死规定的。打开这个文件里面写了要启动 5 个服务frontend网页前端api后端接口worker任务工人redis消息快递员postgres数据库只要你执行docker compose upDocker 就读这个配置文件自动一次性创建 5 个容器。不是你手动创建的是项目配置告诉 Docker把这 5 个盒子全部启动起来协同工作。不是 Docker 强制要求是 Polaris 这个软件本身设计就需要这 5 个组件配合才能完整工作。frontend【前端网页】浏览器打开看到的页面界面。polaris‑api 【后端接口】网页点按钮、提交任务全部访问它。网页 ↔ api 对话。基于polaris‑texbase镜像启动。polaris‑worker【任务工人】真正干活的。调用大模型 API、跑任务、处理论文全部交给 worker。也基于polaris‑texbase镜像启动。polaris‑redis【消息快递员】任务队列。api 收到任务把任务写进 redisworker 从 redis 拿任务去做。独立容器不是 api/worker 里面的。polaris‑postgres【数据库】存数据你的账号、对话记录、项目信息全部存在这里。独立数据库容器。关系浏览器 → frontend 网页 → api 后端 → redis (任务队列) → worker 干活 → postgres 存数据三、redis、postgres镜像 vs 容器什么叫官方公共镜像先分清两个概念redis:7‑alpine 【官方公共镜像】这是模板安装包Redis 软件的作者把做好的镜像上传到 Dockerhub 公开给全世界下载所有人都可以拿来用所以叫官方公共镜像。它不是 Polaris 作者自己写的是现成别人做好的。polaris‑redis 【容器】拿上面这个redis:7‑alpine官方镜像烤出来一个运行中的盒子这个运行出来的实例名字叫polaris‑redis这才是容器。一句话redis:7‑alpine 模板镜像polaris‑redis 用模板生成出来正在跑的盒子容器同理postgres:16→官方镜像模板polaris‑postgres→生成出来的容器运行盒子而我们本地编译出来的polaris‑texbase:latest→我们自己本地构建的镜像模板api、worker 容器是拿这个模板烤出来的容器四、做什么会触发重新构建镜像重新make devDockerfile本身改动docker上下文里面的文件发生变化复制docker/.env就触发了项目目录下文件新增/修改docker检测到文件哈希变动缓存失效全部重新build镜像不小心用了cp 复制命令不需要的为了挽回一下并且不想重新再make dev了我现在需要撤回之前把.env 复制进 docker 的操作复用旧的构建缓存不要重新 build在项目根目录~/Polaris/.env 添加邀请码用于注册【最后其实发现邀请码可以找到不用自己设置】保证docker 文件夹里不要存在.env避免触发缓存失效五、小记构建镜像 把运行代码所需要的系统、软件、依赖库全部准备齐全打包。docker ps-a: 查看所有的容器ps-process正在运行的程序/容器-aall全部的包括已经停止的死掉的容器也一起显示出来polaris‑texbase:latest是镜像不是容器镜像相当于安装包容器相当于把安装包跑起来的运行实例。Q: 为什么修改后必须删掉容器make downA: 容器创建的那一刻才会读取。env里面的API密钥、配置。如果旧容器还在的话compose不会新建新的容器直接复用老盒子所以修改后的.env根本不会生效。nano .env编辑 配置文件cat .env查看 配置文件tail .env查看末尾几行 配置文件