在 macOS X 上設定開發環境

您可以建置 Azure Service Fabric 應用程式,以使用 macOS X 在 Linux 叢集上執行。本文件涵蓋如何設定您的 Mac 進行開發。

必要條件

Azure Service Fabric 不會在 macOS X 上以原生方式執行。若要執行本機 Service Fabric 叢集,我們提供預先設定的 Docker 容器映像。 開始之前,您需要下列項目:

提示

若要在 Mac 上安裝 Docker,請遵循 Docker 文件中的步驟。 安裝之後,您可以使用 Docker Desktop 來設定喜好設定,包括資源限制磁碟使用率

建立本機容器並設定 Service Fabric

若要設定本機的 Docker 容器,並在容器上執行 Service Fabric 叢集,請執行下列步驟:

  1. 使用下列設定更新您主機上的 Docker 精靈設定,然後重新啟動 Docker 精靈:

    {
        "ipv6": true,
        "fixed-cidr-v6": "fd00::/64"
    }
    

    您可以直接在 Docker 安裝路徑的 daemon.json 檔案中更新這些設定。 您可以直接修改 Docker 中的精靈組態設定。 選取 [Docker 圖示],然後選取 [喜好設定]>[精靈]>[進階]

    注意

    建議您直接在 Docker 中修改精靈,因為每一台電腦上的 daemon.json 檔案位置會各不相同。 例如,~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json。

    提示

    測試大型應用程式時,建議提高配置給 Docker 的資源。 選取 [Docker 圖示],然後選取 [進階] 來調整核心數目和記憶體,即可完成此作業。

  2. 啟動叢集。

    最新:

    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:latest
    

    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 Hub 頁面。

    若要從 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. 若要停止並清除容器,請使用下列命令。 不過,我們將在下一個步驟使用此容器。

    docker rm -f sftestcluster
    

已知限制

在 Mac 的容器中執行的本機叢集已知有下列限制:

  • DNS 服務不會執行,且目前在容器中不受支援。 問題 #132
  • 要執行容器型應用程式,必須在 Linux 主機上執行 SF。 目前不支援巢狀容器應用程式。

設定 Mac 上的 Service Fabric CLI (sfctl)

請遵循 Service Fabric CLI 的指示在您的 Mac 安裝 Service Fabric CLI (sfctl)。 CLI 命令支援與 Service Fabric 實體 (包括叢集、應用程式和服務) 互動。

  1. 若要在部署應用程式前連線到叢集,請執行下列命令。
sfctl cluster select --endpoint http://localhost:19080

在 Mac 上使用 Yeoman 建立應用程式

Service Fabric 提供的 Scaffolding 工具可協助您從終端機使用 Yeoman 範本產生器建立 Service Fabric 應用程式。 請使用下列步驟,確保 Service Fabric Yeoman 範本產生器可在您的機器上運作:

  1. 您的 Mac 上必須安裝 Node.js 和節點套件管理員。 您可以使用 HomeBrew 安裝軟體,如下所示:

    brew install node
    node -v
    npm -v
    
  2. 在您的機器上透過節點套件管理員安裝 Yeoman 範本產生器:

    npm install -g yo
    
  3. 遵循快速入門文件中的步驟,安裝您想要的 Yeoman 產生器。 若要使用 Yeoman 建立 Service Fabric 應用程式,請遵循下列步驟:

    npm install -g generator-azuresfjava       # for Service Fabric Java Applications
    npm install -g generator-azuresfguest      # for Service Fabric Guest executables
    npm install -g generator-azuresfcontainer  # for Service Fabric Container Applications
    
  4. 在您安裝產生器後,請分別執行 yo azuresfguestyo azuresfcontainer,以建立來賓可執行檔或容器服務。

  5. 若要在 Mac 上建置 Service Fabric Java 應用程式,您必須在主機機器上安裝 JDK 1.8 版和 Gradle。 您可以使用 HomeBrew 安裝軟體,如下所示:

    brew update
    brew cask install java
    brew install gradle
    

    重要

    目前的 brew cask install java 版本可能會安裝較新版本的 JDK。 請務必安裝 JDK 8。

在 Mac 上從終端機部署應用程式

在建立並建置 Service Fabric 應用程式後,您就可以使用 Service Fabric CLI 部署應用程式:

  1. 在 Mac 上連線到容器執行個體內執行的 Service Fabric 叢集:

    sfctl cluster select --endpoint http://localhost:19080
    
  2. 從您的專案目錄內執行安裝指令碼:

    cd MyProject
    bash install.sh
    

設定 .NET Core 3.1 開發

安裝 .NET Core 3.1 SDK for Mac 以開始建立 C# Service Fabric 應用程式。 .NET Core Service Fabric 應用程式的套件裝載於 NuGet.org。

在 Mac 上安裝適用於 Eclipse 的 Service Fabric 外掛程式

Azure Service Fabric 會針對 Java IDE 提供 Eclipse Neon (或更新版本) 的外掛程式。 外掛程式可簡化建立、建置和部署 Java 服務的程序。 若要安裝或更新為最新版的 Eclipse Service Fabric 外掛程式,請遵循這些步驟Eclipse 的 Service Fabric 文件中的其他步驟也適用:建置應用程式、將服務新增至應用程式、解除安裝應用程式等。

最後一個步驟是使用與您的主機共用的路徑將容器具現化。 外掛程式需要這種類型的具現化,才能在您的 Mac 上使用 Docker 容器。 例如:

docker run -itd -p 19080:19080 -v /Users/sayantan/work/workspaces/mySFWorkspace:/tmp/mySFWorkspace --name sfonebox mcr.microsoft.com/service-fabric/onebox:latest

屬性的定義如下:

  • /Users/sayantan/work/workspaces/mySFWorkspace 是您 Mac 上的工作區完整路徑。
  • /tmp/mySFWorkspace 是工作區所應對應的容器內路徑。

注意

如果您的工作區使用不同的名稱/路徑,請在 docker run 命令中更新這些值。

如果您使用 sfonebox 以外的名稱來啟動容器,請在您 Service Fabric 執行者 Java 應用程式中的 testclient.sh 檔案更新該名稱值。

下一步