设置 Windows 开发人员计算机上的 Linux Service Fabric 群集

本文档介绍如何在 Windows 开发计算机上设置本地 Linux Service Fabric 群集。 设置本地 Linux 群集有助于快速测试在 Windows 计算机上开发的面向 Linux 群集的应用程序。

先决条件

基于 Linux 的 Service Fabric 群集不在 Windows 上运行,但为了实现跨平台原型设计,我们提供了一个可以通过用于 Windows 的 Docker 进行部署的 Linux Service Fabric 单机群集 Docker 容器。

准备事项:

提示

若要在 Windows 计算机上安装 Docker,请按 Docker 文档中的步骤操作。 安装之后,请验证安装

创建本地容器和设置 Service Fabric

若要设置本地 Docker 容器并在其上运行 Service Fabric 群集,请运行以下步骤:

  1. 使用以下内容更新主机上的 Docker 守护程序配置并重启 Docker 守护程序:

    {
      "ipv6": true,
      "fixed-cidr-v6": "2001:db8:1::/64"
    }
    

    建议的更新方法是转到:

    • Docker 图标 >“设置”>“Docker 引擎”
    • 添加上面列出的新字段
    • 应用和重启 - 重启 Docker 守护程序以使更改生效。
  2. 通过 PowerShell 启动群集。
    Ubuntu 20.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u20
    

    Ubuntu 18.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u18
    

    提示

    默认情况下,这样会拉取具有最新 Service Fabric 版本的映像。 对于特定的修订版本,请参阅 Docker Hub 上的 Service Fabric Onebox 页。

  3. 可选:构建扩展的 Service Fabric 映像。

    在新目录中创建名为 Dockerfile 的文件,以构建自定义映像:

    注意

    可以使用 Dockerfile 修改上面的映像,以将其他程序或依赖项添加到容器中。 例如,添加 RUN apt-get install nodejs -y 可以支持将 nodejs 应用程序用作来宾可执行文件。

    FROM mcr.microsoft.com/service-fabric/onebox:u18
    RUN apt-get install nodejs -y
    EXPOSE 19080 19000 80 443
    WORKDIR /home/ClusterDeployer
    CMD ["./ClusterDeployer.sh"]
    

    提示

    默认情况下,这样会拉取具有最新 Service Fabric 版本的映像。 如需特定的修订版本,请访问 Docker 中心页。

    若要通过 Dockerfile 生成可重用的映像,请打开终端并使用 cd 直接切换到 Dockerfile 所在的目录,然后运行:

    docker build -t mysfcluster .
    

    注意

    此操作需要一段时间,但只需执行一次。

    现在,每当有需要时,都可以运行以下命令,快速启动 Service Fabric 的本地副本:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mysfcluster
    

    提示

    为容器实例提供一个名称,以更具可读性的方式对其进行处理。

    如果应用程序正在侦听特定端口,则必须使用附加的 -p 标记指定这些端口。 例如,如果应用程序正在侦听端口 8080,请添加下面的 -p 标记:

    docker run -itd -p 19000:19000 -p 19080:19080 -p 8080:8080 --name sfonebox mcr.microsoft.com/service-fabric/onebox:u18

  4. 群集需要一小段时间来启动,可以使用以下命令查看日志,或者通过 http://localhost:19080 跳转到仪表板来查看群集运行状况:

    docker logs sftestcluster
    
  5. 按照步骤 4 的说明成功部署群集后,可以从 Windows 计算机转到 http://localhost:19080,以找到 Service Fabric Explorer 仪表板。 此时,可使用 Windows 开发人员计算机上的工具连接到此群集,并部署面向 Linux Service Fabric 群集的应用程序。

    注意

    Windows 当前不支持 Eclipse 插件。

  6. 完成后,可使用以下命令来停止并清理容器:

    docker rm -f sftestcluster
    

已知限制

以下是在 Mac 的容器中运行的本地群集的已知限制:

  • DNS 服务未运行,并且目前在容器中不受支持。 问题 #132
  • 运行基于容器的应用需要在 Linux 主机上运行 SF。 当前不支持嵌套容器应用程序。

后续步骤