news 2026/9/2 5:13:27

Polaris复现笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Polaris复现笔记

一、Docker 究竟是什么

Docker 就是一个盒子管理器
它可以创建一个个隔离小盒子(容器),每个盒子里面装一套程序,盒子之间互不干扰。

  • Docker:管理工具(总管)
  • 镜像:盒子的模板 / 安装包(存硬盘)
  • 容器:按照模板跑起来的实实在在运行的小盒子(内存里运行)

类比:
镜像 = 蛋糕模具
容器 = 用模具烤出来的蛋糕,可以烤很多个蛋糕

二、为什么会产生这么多容器?是谁规定的?

是这个项目的docker-compose.yml文件写死规定的。
打开这个文件,里面写了要启动 5 个服务:

  1. frontend(网页前端)
  2. api(后端接口)
  3. worker(任务工人)
  4. redis(消息快递员)
  5. postgres(数据库)

只要你执行docker compose up,Docker 就读这个配置文件,自动一次性创建 5 个容器
不是你手动创建的,是项目配置告诉 Docker:把这 5 个盒子全部启动起来协同工作。

不是 Docker 强制要求,是 Polaris 这个软件本身设计就需要这 5 个组件配合才能完整工作。

  1. frontend【前端网页】

浏览器打开看到的页面界面。

  1. polaris‑api 【后端接口】

网页点按钮、提交任务,全部访问它。网页 ↔ api 对话。
基于polaris‑texbase镜像启动。

  1. polaris‑worker【任务工人】

真正干活的。调用大模型 API、跑任务、处理论文全部交给 worker。
也基于polaris‑texbase镜像启动。

  1. polaris‑redis【消息快递员】

任务队列。api 收到任务,把任务写进 redis;worker 从 redis 拿任务去做。
独立容器,不是 api/worker 里面的。

  1. polaris‑postgres【数据库】

存数据:你的账号、对话记录、项目信息全部存在这里。
独立数据库容器。

关系:

浏览器 → frontend 网页 → api 后端 → redis (任务队列) → worker 干活 → postgres 存数据

三、redis、postgres:镜像 vs 容器,什么叫官方公共镜像

先分清两个概念:

  1. redis:7‑alpine 【官方公共镜像】
    这是模板(安装包),Redis 软件的作者把做好的镜像上传到 Dockerhub 公开给全世界下载,所有人都可以拿来用,所以叫官方公共镜像
    它不是 Polaris 作者自己写的,是现成别人做好的。
  2. polaris‑redis 【容器】
    拿上面这个redis:7‑alpine官方镜像,烤出来一个运行中的盒子,这个运行出来的实例名字叫polaris‑redis,这才是容器。

📌一句话:
redis:7‑alpine = 模板(镜像);polaris‑redis = 用模板生成出来正在跑的盒子(容器)

同理:
postgres:16→官方镜像(模板)
polaris‑postgres→生成出来的容器(运行盒子)

而我们本地编译出来的:
polaris‑texbase:latest我们自己本地构建的镜像模板
api、worker 容器,是拿这个模板烤出来的容器

四、做什么会触发重新构建镜像,重新make dev

  1. Dockerfile本身改动
  2. docker上下文里面的文件发生变化(复制docker/.env就触发了)
  3. 项目目录下文件新增/修改,docker检测到文件哈希变动,缓存失效,全部重新build镜像

不小心用了cp 复制命令(不需要的),为了挽回一下,并且不想重新再make dev了,我现在需要

  1. 撤回之前把.env 复制进 docker 的操作
  2. 复用旧的构建缓存,不要重新 build!
  3. 在项目根目录~/Polaris/.env 添加邀请码(用于注册)【最后其实发现邀请码可以找到,不用自己设置】
  4. 保证docker 文件夹里不要存在.env,避免触发缓存失效

五、小记

构建镜像= 把运行代码所需要的系统、软件、依赖库全部准备齐全打包。
docker ps-a: 查看所有的容器

ps-process,正在运行的程序/容器
-a:all,全部的包括已经停止的,死掉的容器也一起显示出来

polaris‑texbase:latest是镜像,不是容器!
镜像相当于安装包,容器相当于把安装包跑起来的运行实例。

Q: 为什么修改后必须删掉容器?make down
A: 容器创建的那一刻才会读取。env里面的API密钥、配置。如果旧容器还在的话,compose不会新建新的容器,直接复用老盒子;所以修改后的.env根本不会生效。

nano .env编辑 配置文件
cat .env查看 配置文件
tail .env查看末尾几行 配置文件

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 5:10:56

Mixly自制库文件全攻略:原理、实操与避坑指南

简介:这是一套专为Mixly米思齐平台制作的自制库文件,主要面向基于ESP8266的物联网开发场景,帮助创客与进阶学习者快速完成常用功能模块的搭建。库内整合了EEPROM字符复制与持久化存储、WiFi自动配网、数据类型转换,以及基于U8G2的…

作者头像 李华
网站建设 2026/9/2 5:09:01

上海数据交易所数据交易合规注意事项清单

这份上海数据交易所官方编制的数据交易合规注意事项清单,是国内数据要素流通领域权威实操级合规管控工具,推介落地价值极高。清单完全贴合《数据安全法》《个人信息保护法》等法规要求,覆盖数据交易从主体准入、标的挂牌、交易撮合、交付验收到售后管控全流程,解决企业数据…

作者头像 李华
网站建设 2026/9/2 5:08:52

在线工具实测指南:四步法高效评估与避坑策略

1. 先搞清楚“一天一个强大网站”到底在解决什么问题这个系列的核心价值,不是简单地罗列一堆网站链接,而是帮你筛选出那些能真正解决实际工作、学习或生活问题的在线工具。很多工具聚合站信息过载,但真正能用、好用、能解决燃眉之急的并不多。…

作者头像 李华
网站建设 2026/9/2 5:07:26

《我的世界》全自动安山工厂4.0:模组自动化工程构建与优化指南

这次我们来看一个名为“全自动安山工厂 4.0”的项目。从标题和命名风格来看,这很可能是一个针对《我的世界》(Minecraft)游戏的高度自动化生产设施设计或模组整合方案。这类项目通常聚焦于利用游戏内的红石电路、自动化机械模组(如…

作者头像 李华
网站建设 2026/9/2 5:05:53

理解数据类型本质:从变量、字符串到数据可视化的完整实践

很多初学者在学习编程时,往往第一课就是数据类型。不少人把这张表背得滚瓜烂熟:整数是 int,小数是 float,字符串是 String……但一写代码,还是会遇到“这个类型为什么不能直接运算?”“为什么字符串拼出来的…

作者头像 李华
网站建设 2026/9/2 5:01:29

Bandicam官方正版下载安装与注册全攻略:安全获取与高效配置指南

如果你正在寻找一款功能强大、录制效果清晰的屏幕录制软件,那么 Bandicam 这个名字你一定不陌生。它凭借出色的性能、极低的系统资源占用和高质量的录制效果,在游戏录制、教程制作、软件演示等领域积累了极高的口碑。然而,对于许多初次接触的…

作者头像 李华