macOS X で開発環境をセットアップする
Linux クラスターで実行される Azure Service Fabric アプリケーションを macOS X を使用して構築できます。このドキュメントでは、開発用に Mac をセットアップする方法について説明します。
前提条件
Azure Service Fabric は、macOS X ではネイティブに実行されません。ローカルの Service Fabric クラスターを実行できるように、事前に構成済みの Docker コンテナー イメージが用意されています。 以降の手順を開始する前に次の要件を満たしておく必要があります。
Mac に Docker Desktop をインストールする場合のシステム要件
ヒント
Mac に Docker をインストールには、Docker のドキュメントの手順に従ってください。 インストール後、Docker Desktop を使用して、リソースの制限やディスク使用率などの環境設定を設定できます。
ローカル コンテナーを作成し、Service Fabric をセットアップする
ローカル Docker コンテナーをセットアップし、そこで Service Fabric クラスターを実行するには、次の手順を実行します。
以下の設定を使用してホスト上の Docker デーモン構成を更新し、Docker デーモンを再起動します。
{ "ipv6": true, "fixed-cidr-v6": "fd00::/64" }
これらの設定は、Docker インストール パスの daemon.json ファイルで直接更新できます。 Docker でデーモン構成設定を直接変更できます。 Docker アイコンを選択し、 [Preferences](環境設定)>[Daemon](デーモン)>[Advanced](詳細設定) の順に選択します。
Note
daemon.json ファイルの場所はマシンによって異なるので、Docker でデーモンを直接変更することをお勧めします。 例: ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json
ヒント
大規模なアプリケーションをテストする際は、Docker に割り当てられたリソースを増やすことをお勧めします。 Docker アイコンを選択し、 [詳細] を選択して、コア数やメモリを調整してください。
クラスターを起動します。
最新:
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 のページを参照してください。
省略可能:拡張 Service Fabric イメージをビルドします。
新しいディレクトリに、
Dockerfile
という名前のファイルを作成して、カスタマイズしたイメージをビルドします。Note
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 .
Note
この操作にはしばらく時間がかかりますが、実行するのは 1 回でかまいません。
これで、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
クラスターが起動するには少し時間がかかります。 実行状態になると、次のコマンドを使用してログを表示したり、ダッシュボードに移動してクラスターの正常性を確認したりすることができます (
http://localhost:19080
)。docker logs sftestcluster
コンテナーを停止してクリーンアップするには、次のコマンドを使用します。 ただし、次のステップでこのコンテナーを使用します。
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 エンティティの操作をサポートします。
- アプリケーションをデプロイする前にクラスターに接続するには、次のコマンドを実行します。
sfctl cluster select --endpoint http://localhost:19080
Mac 上で Yeoman を使ってアプリケーションを作成する
Service Fabric には、ターミナルから Yeoman テンプレート ジェネレーターを使って Service Fabric アプリケーションを作成するのに役立つスキャフォールディング ツールが用意されています。 以下の手順に従って、ご利用のマシンで Service Fabric Yeoman テンプレート ジェネレーターが実行されていることを確認してください。
Mac に Node.js とノード パッケージ マネージャーがインストールされている必要があります。 このソフトウェアは、次のように HomeBrew を使用してインストールできます。
brew install node node -v npm -v
ノード パッケージ マネージャーからマシンに Yeoman テンプレート ジェネレーターをインストールします。
npm install -g yo
概要ドキュメントの手順に従って、使用する 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
ジェネレーターのインストール後、
yo azuresfguest
またはyo azuresfcontainer
を実行して、ゲスト実行可能ファイルまたはコンテナー サービスを作成します。Service Fabric Java アプリケーションを Mac で構築するには、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 を使用してアプリケーションをデプロイできます。
Mac のコンテナー インスタンス内で実行されている Service Fabric クラスターに接続します。
sfctl cluster select --endpoint http://localhost:19080
プロジェクト ディレクトリ内で、インストール スクリプトを実行します。
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 でホストされています。
Eclipse 用の Service Fabric プラグインを Mac にインストールする
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
は、ワークスペースをマップするコンテナーの内部のパスです。
Note
ワークスペースの名前/パスが異なる場合は、docker run
コマンドでこれらの値を更新してください。
sfonebox
以外の名前でコンテナーを開始する場合は、Service Fabric アクター Java アプリケーションの testclient.sh ファイルの名前値を更新してください。
次のステップ
- Yeoman を使用して Linux で最初の Service Fabric Java アプリケーションを作成してデプロイする
- Eclipse 用の Service Fabric プラグインを使用して Linux で最初の Service Fabric Java アプリケーションを作成してデプロイする
- Azure Portal で Service Fabric クラスターを作成する
- Azure Resource Manager を使用して Service Fabric クラスターを作成する
- Service Fabric アプリケーション モデルを理解する
- Service Fabric CLI を使用してアプリケーションを管理する
- Windows で Linux 開発環境を準備する