Docker
Docker,现代软件开发中不可或缺的工具,为AutoGen的设置提供了一个引人注目的解决方案。Docker允许您创建与主机操作系统隔离且可移植的一致环境。使用Docker,AutoGen运行所需的一切,从操作系统到特定的库,都被封装在一个容器中,确保在不同系统上具有一致的功能。AutoGen所需的Dockerfiles方便地存放在项目的GitHub仓库中,位于https://github.com/microsoft/autogen/tree/main/.devcontainer。
预配置的 DockerFiles:AutoGen 项目提供了预配置的 Dockerfiles 供您使用。这些 Dockerfiles 可以直接运行,但也可以根据您的开发需求进行修改。请参阅 autogen/.devcontainer 中的 README.md 文件。
- autogen_base_img: 对于基本设置,您可以使用
autogen_base_img
来运行简单的脚本或应用程序。这对于普通用户或新接触AutoGen的人来说是理想的选择。 - autogen_full_img: 高级用户或需要更多功能的人可以使用
autogen_full_img
。请注意,这个版本会加载所有内容,因此非常大。如果你基于它构建应用程序,请考虑到这一点。
第一步:安装 Docker
-
常规安装: 遵循官方Docker安装说明。这是你迈向容器化环境的第一步,确保为AutoGen提供一个一致且隔离的工作空间。
-
对于Mac用户: 如果遇到Docker守护进程的问题,请考虑使用colima。Colima提供了一个轻量级替代方案,可以在macOS上高效管理Docker容器。
步骤2:构建一个Docker镜像
AutoGen 现在提供了针对不同需求更新的 Dockerfiles。构建 Docker 镜像就像为你的项目环境打下基础:
-
Autogen基础版: 适合一般使用,此设置包括常用的Python库和基本依赖项。非常适合刚开始使用AutoGen的用户。
docker build -f .devcontainer/Dockerfile -t autogen_base_img https://github.com/microsoft/autogen.git#main
-
Autogen 高级版: 高级用户或需要所有 AutoGen 提供的功能的用户
autogen_full_img
docker build -f .devcontainer/full/Dockerfile -t autogen_full_img https://github.com/microsoft/autogen.git#main
步骤3:从Docker镜像运行AutoGen应用程序
以下是如何使用Docker镜像运行一个用AutoGen构建的应用程序:
-
挂载你的目录:使用 Docker 的
-v
标志将本地应用程序目录挂载到 Docker 容器中。这允许你在本地机器上开发代码,同时在一个一致的 Docker 环境中运行代码。例如:docker run -it -v $(pwd)/myapp:/home/autogen/autogen/myapp autogen_base_img:latest python /home/autogen/autogen/myapp/main.py
在这里,
$(pwd)/myapp
是你的本地目录,而/home/autogen/autogen/myapp
是 Docker 容器中代码将存放的路径。 -
挂载你的代码: 现在假设你已经使用AutoGen在名为
myapp
的文件夹中的一个主脚本twoagent.py
(示例)中构建了你的应用程序。使用下面的命令行,你可以挂载你的文件夹并在Docker中运行该应用程序。# 将本地文件夹`myapp`挂载到docker镜像中,并在docker中运行名为"twoagent.py"的脚本。
docker run -it -v `pwd`/myapp:/myapp autogen_img:latest python /myapp/main_twoagent.py -
端口映射: 如果你的应用程序需要一个特定的端口,使用
-p
标志将容器的端口映射到你的主机。例如,如果你的应用在Docker内部运行在3000端口,并且你希望在主机上的8080端口访问它:docker run -it -p 8080:3000 -v $(pwd)/myapp:/myapp autogen_base_img:latest python /myapp
在这个命令中,
-p 8080:3000
将容器中的3000端口映射到本地机器的8080端口。 -
运行不同应用程序的示例: 以下是docker run命令的基本格式。
docker run -it -p {WorkstationPortNum}:{DockerPortNum} -v {WorkStation_Dir}:{Docker_DIR} {name_of_the_image} {bash/python} {Docker_path_to_script_to_execute}
-
简单脚本: 运行位于本地
myapp
目录中的Python脚本。docker run -it -v `pwd`/myapp:/myapp autogen_base_img:latest python /myapp/my_script.py
-
Web 应用程序:如果您的应用程序包括一个运行在端口 5000 的 web 服务器。
docker run -it -p 8080:5000 -v $(pwd)/myapp:/myapp autogen_base_img:latest
-
数据处理: 用于处理存储在本地目录中的数据的任务。
docker run -it -v $(pwd)/data:/data autogen_base_img:latest python /myapp/process_data.py
其他资源
- 有关所有 Dockerfile 选项的详细信息,请参阅 Dockerfile README。
- 有关Docker使用和最佳实践的更多信息,请参阅官方Docker文档。
- 关于如何使用Dockerfile开发版本的详细信息可以在贡献者指南中找到。