
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本仓库包含可用于在本地设置https://github.com/DDMAL/rodan%E8%BF%9B%E8%A1%8C%E5%BC%80%E5%8F%91%E7%9A%84Docker%E9%95%9C%E5%83%8F%E3%80%82%E8%BF%99%E4%BA%9B%E9%95%9C%E5%83%8F%E6%9C%AA%E6%9D%A5%E7%A8%8D%E4%BD%9C%E4%BF%AE%E6%94%B9%E5%90%8E%E4%B9%9F%E5%8F%AF%E7%94%A8%E4%BA%8E%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2%E3%80%82
首先,为您的平台下载并安装https://www.docker.com/community-edition%E3%80%82%E5%A6%82%E6%9E%9C%E6%82%A8%E7%9A%84%E5%B9%B3%E5%8F%B0%E4%B8%8D%E6%94%AF%E6%8C%81Docker%EF%BC%88%E4%BE%8B%E5%A6%82macOS%E4%BD%8E%E4%BA%8E10.10.3%E3%80%81Windows%E4%BD%8E%E4%BA%8E10 Pro或硬件不支持),请改用https://www.docker.com/products/docker-toolbox%E3%80%82%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8Docker Toolbox,请参见下方特定说明。
安装Docker后,在您的计算机上克隆此仓库并运行以下命令:
shelldocker login
输入Docker Hub的DDMAL凭据(如不知道,请联系实验室管理员)以将其保存在您的计算机上。此步骤只需执行一次。
要运行Rodan,请在仓库主目录中运行以下命令:
shelldocker-compose up
就是这样!Docker将自动生成运行Rodan、rodan-client及其依赖项所需的所有容器。在浏览器中访问https://localhost:9002%E5%8D%B3%E5%8F%AF%E6%9F%A5%E7%9C%8BRodan Web界面。用户名为rodan,密码为rodan。Rodan REST API可通过https://localhost:8000%E8%AE%BF%E9%97%AE%E3%80%82%E5%A6%82%E6%9C%89%E9%9C%80%E8%A6%81%EF%BC%8C%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8%E8%BF%90%E8%A1%8C%60docker-compose%60%E7%9A%84%E7%BB%88%E7%AB%AF%E7%AA%97%E5%8F%A3%E4%B8%AD%E8%A7%82%E5%AF%9FRodan%E5%AE%B9%E5%99%A8%E7%9A%84%E6%97%A5%E5%BF%97%E8%BE%93%E5%87%BA%E3%80%82%E5%AE%8C%E6%88%90%E5%90%8E%EF%BC%8C%E4%BD%BF%E7%94%A8%60Ctrl+C%60%E9%80%80%E5%87%BA%60docker-compose%60%E3%80%82
Docker Toolbox不会在localhost上公开容器端口,而是在Docker主机的IP地址上公开,您可以使用以下命令获取该IP:
shelldocker-machine ip default
为了让Rodan Web界面能够找到Rodan服务器,请在hosts文件中添加一条将localhost重定向到Docker主机IP地址的条目。macOS上的hosts文件位于/etc/hosts,Windows上位于c:\Windows\System32\Drivers\etc\hosts。添加以下条目,将IP地址替换为上述命令的输出:
192.168.xxx.xxx localhost
https://www.docker.com/what-container%E6%98%AF%E4%B8%80%E7%A7%8D%E8%BD%BB%E9%87%8F%E7%BA%A7%E3%80%81%E7%8B%AC%E7%AB%8B%E7%9A%84%E5%8F%AF%E6%89%A7%E8%A1%8C%E8%BD%AF%E4%BB%B6%E5%8C%85%EF%BC%8C%E5%8C%85%E5%90%AB%E8%BF%90%E8%A1%8C%E6%89%80%E9%9C%80%E7%9A%84%E4%B8%80%E5%88%87%EF%BC%9A%E4%BB%A3%E7%A0%81%E3%80%81%E8%BF%90%E8%A1%8C%E6%97%B6%E3%80%81%E7%B3%BB%E7%BB%9F%E5%B7%A5%E5%85%B7%E3%80%81%E7%B3%BB%E7%BB%9F%E5%BA%93%E5%92%8C%E8%AE%BE%E7%BD%AE%E3%80%82%E5%AE%B9%E5%99%A8%E4%B8%8E%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%8D%E5%90%8C%EF%BC%9A%E5%AE%83%E6%9B%B4%E8%BD%BB%E9%87%8F%E7%BA%A7%E4%B8%94%E5%8F%AF%E7%A7%BB%E6%A4%8D%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%AE%83%E8%99%9A%E6%8B%9F%E5%8C%96%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E8%80%8C%E9%9D%9E%E7%A1%AC%E4%BB%B6%E3%80%82
Rodan的Docker设置由5个容器镜像组成:
rodan - 提供REST API的Rodan服务器rodan-client - Rodan的Web界面postgres-plpython - Rodan服务器使用的PostgreSQL数据库,已安装Python扩展redis - Rodan服务器用于管理WebSocket连接的键值数据库。TODO:我们真的使用这个吗?(matangover)rabbitmq - 用作celery后端的消息队列,celery是Rodan用于作业管理的Python库rodan、rodan-client和postgres-plpython在本仓库中各有一个Dockerfile。对于redis和rabbitmq,我们使用Docker Hub上现有的公共镜像。docker-compose.yml文件指定了容器镜像之间的依赖关系,并将它们组合以设置完整的Rodan安装。
rodan-client和postgres-plpython是GitHub和Docker Hub上的公共仓库,但GitHub上的rodan-docker和Docker Hub上的rodan是私有的。它们必须是私有的,因为包含Kakadu(一种授权给DDMAL的专有软件包)。未来我们可能会创建一个不含Kakadu的rodan镜像的单独公共版本。
如果您希望开发Rodan或rodan-client并在本地测试更改,有几种选择。docker-compose设置是模块化的,因此您可以选择保留哪些部分,以及用本地更改覆盖哪些部分。
如果您希望开发rodan-client而不修改Rodan,可以在本地运行rodan-client并让其连接到docker-compose运行的Rodan服务器。rodan-client依赖项较少,因此设置简单。
rodan-docker/rodan-client/config中的configuration.json复制到您自己的rodan-client克隆中。如果要使用自己的配置,请确保它连接到docker-compose启动的Rodan服务器:json{ "SERVER_HOST": "localhost", "SERVER_PORT": 8000 }
docker-compose up rodan(而非docker-compose up)以运行Rodan及其依赖项,但不运行rodan-client。您可以在本地设置Rodan及其依赖项(如上述rodan-client的描述),但由于Rodan有许多依赖项,安装可能比较麻烦,更好的选择是本地克隆Rodan代码并将其挂载到已安装所有依赖项的Docker容器中。要使用本地开发版本的Rodan运行Rodan堆栈:
确保Rodan已克隆到rodan-docker/rodan/code/rodan - 参见下面的Git子模块设置。(您也可以使用不同路径的Rodan克隆,只需对以下步骤稍作调整。)
将rodan-docker/rodan/code/settings.py.development复制到rodan-docker/rodan/code/rodan/rodan/settings.py。请注意,此设置文件除默认作业类型外不包含其他作业类型。要启用更多作业类型,必须将作业安装到rodan-docker/rodan/code/rodan/rodan/jobs并将它们添加到settings.py中的RODAN_JOB_PACKAGES。
运行docker-compose -f docker-compose.yml -f docker-compose.rodan-dev.yml up
运行docker-compose时,Docker会将您的本地代码版本挂载到容器中,覆盖镜像中包含的Rodan版本。
有关Docker中卷的更多信息,请参见Docker文档中的https://docs.docker.com/engine/admin/volumes/volumes/%E3%80%82%E5%8F%A6%E8%AF%B7%E5%8F%82%E8%A7%81%60docker-compose.yml%60%E6%96%87%E4%BB%B6%E7%9A%84https://docs.docker.com/compose/compose-file/#volumes%E6%96%87%E6%A1%A3%E3%80%82
有时检查容器内运行的文件或进程会很有用。要获取正在运行的容器列表,请运行docker ps。要在容器和主机之间复制文件,请使用docker cp。
要在运行中的容器上运行任何命令,请使用docker exec。例如,要在docker-compose启动的Rodan容器上运行bash:
shelldocker exec -it rodandocker_rodan_1 bash
有关其他信息,请查阅https://docs.docker.com/engine/reference/commandline/cli/%E6%96%87%E6%A1%A3%E3%80%82
本仓库使用Git子模块机制包含设置Rodan所需的所有库。Git子模块本质上是指向其他Git仓库的指针,在.gitmodules文件中指定。
仅当您希望重建Docker镜像时才需要克隆子模块。使用GitHub Desktop或SourceTree等图形化Git客户端时,子模块通常会自动克隆。在命令行克隆时,在git clone后运行以下命令以同时克隆子模块:
shellgit submodule update --init
当您更新上游仓库(例如Rodan或rodan-client)时,更改不会反映在此仓库中(因此也不会反映在Docker镜像中),直到您拉取更改。例如,要拉取Rodan的新版本,请运行以下命令:
shell# 拉取子模块更改。必须显式指定分支名称。 cd rodan/code/rodan git pull origin master # 提交并将更改推送到父仓库(docker-rodan)。 cd ../.. git add rodan/code/rodan git commit -m "Update the rodan submodule" git push
如果您更改了Rodan或rodan-client,或希望更改它们的安装方式,可以构建新版本的Docker镜像,在本地使用并最终发布。例如,要从仓库主目录构建rodan镜像的新版本,请运行以下命令:
shelldocker build -t ddmal/rodan rodan
构建操作将考虑您对rodan/Dockerfile或其依赖的任何文件所做的更改。根据您的更改,构建可能需要很长时间才能完成。
构建镜像后,您可以使用docker run rodan创建使用该镜像的容器。有关更完整的指南,请参阅Docker的https://docs.docker.com/get-started/%E6%96%87%E6%A1%A3%E3%80%82
当您对镜像满意并希望将其发布到Docker Hub时,运行docker push,例如docker push ddmal/rodan。
Docker Cloud可以在新提交推送到Git仓库时自动构建新的Docker镜像。不幸的是,由于身份验证问题,我们无法将GitHub上的rodan-docker仓库连接到Docker Cloud,因此我们在Bitbucket上设置了一个私有仓库。
每次将新提交推送到Bitbucket仓库的master分支时,Docker Cloud将自动构建Rodan Docker镜像。要推送到Bitbucket仓库,首先将其添加为本地克隆的远程:
git remote add bitbucket https://ddmaldocker@bitbucket.org/ddmaldocker/rodan-docker.git
(Bitbucket上ddmaldocker的密码与Docker Hub上ddmal的密码相同。)
完成将更改提交到master分支后,像往常一样推送到GitHub远程(origin),然后也推送到bitbucket远程:
git push bitbucket master
这将触发Docker Cloud服务器上rodan、rodan-client和postgres-plpython镜像的自动构建。您可以使用ddmal账户凭据在[***]
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务