Skip to main content

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。请注意,这个版本加载了所有内容,因此非常庞大。如果您基于它构建应用程序,请考虑这一点。

步骤1:安装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构建的应用程序的方法:

  1. 挂载您的目录:使用Docker的-v标志将本地应用程序目录挂载到Docker容器中。这样您就可以在本地机器上开发,同时在一致的Docker环境中运行代码。例如:

  2. 运行 AutoGen: 使用以下命令在 Docker 中运行 AutoGen。

    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 容器中代码所在的路径。

  3. 挂载代码: 假设你的 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
  4. 端口映射: 如果你的应用程序需要特定的端口,可以使用 -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。

  5. 运行不同应用程序的示例: 这是 docker run 命令的基本格式。

    docker run -it -p {工作站端口号}:{Docker端口号} -v {工作站目录}:{Docker目录} {镜像名称} {bash/python} {Docker中要执行的脚本路径}
  • 简单脚本: 运行位于本地 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 开发版本的详细信息,请参阅 贡献者指南