Настройка среды разработки в macOS X

Вы можете собирать приложения Azure Service Fabric на базе macOS X, которые работают в кластерах Linux. Из этого документа вы узнаете, как настроить компьютер Mac для разработки приложений.

Предварительные требования

Azure Service Fabric изначально не предназначена для работы в macOS X. Чтобы запустить локальный кластер Service Fabric, предоставляется предварительно настроенный образ контейнера Docker. Перед началом работы вам потребуются:

Совет

Чтобы установить Docker на компьютере Mac, выполните инструкции, приведенные в документации Docker. После установки можно использовать DOCKER Desktop для установки таких параметров, как ограничения ресурсов и использование дискового пространства.

Создание локального контейнера и настройка Service Fabric

Чтобы настроить локальный контейнер Docker и запустить его в кластере Service Fabric, выполните следующие действия:

  1. Обновите конфигурацию управляющей программы Docker в узле с помощью следующих параметров и перезапустите управляющую программу Docker:

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

    Вы можете обновить эти параметры непосредственно в файле daemon.json, который находится в папке установки Docker. Вы можете непосредственно изменить параметры конфигурации управляющей программы в 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. Сведения о конкретных редакциях см. на странице Service Fabric OneBox в Docker Hub.

  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. Чтобы остановить и очистить контейнер, используйте следующую команду: Тем не менее мы будем использовать этот контейнер на следующем шаге.

    docker rm -f sftestcluster
    

Известные ограничения

Ниже перечислены известные ограничения для локального кластера, запущенного в контейнере для Mac:

  • Служба DNS в контейнере не запускается и в настоящее время не поддерживается. Проблема №132
  • Для выполнения приложений на основе контейнеров необходимо запустить SF на узле Linux. Вложенные приложения контейнеров в настоящее время не поддерживаются.

Настройка интерфейса командной строки Service Fabric (sfctl) на компьютере Mac

Чтобы установить интерфейс командной строки Service Fabric (sfctl) на компьютере Mac, см. инструкции в этом разделе. Команды интерфейса командной строки поддерживают взаимодействие с сущностями Service Fabric, включая кластеры, приложения и службы.

  1. Чтобы подключиться к кластеру перед развертыванием приложений, выполните следующую команду:
sfctl cluster select --endpoint http://localhost:19080

Создание приложения на компьютере Mac с помощью Yeoman

Service Fabric предоставляет средства формирования шаблонов, которые позволяют создать приложение Service Fabric из терминала с помощью генератора шаблонов Yeoman. Чтобы установить генератор шаблонов Yeoman для Service Fabric на компьютере, выполните следующие действия:

  1. Node.js и диспетчер пакетов узла должны быть установлены на компьютере Mac. Это можно сделать с помощью HomeBrew, как показано ниже:

    brew install node
    node -v
    npm -v
    
  2. Установите на компьютере генератор шаблонов Yeoman из диспетчера пакетов узла.

    npm install -g yo
    
  3. Установите генератор Yeoman, следуя инструкциям из документации по началу работы. Чтобы создавать приложения Service Fabric с помощью Yeoman, сделайте следующее:

    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 azuresfguest или yo azuresfcontainer соответственно.

  5. Чтобы создать приложение 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.

  1. Подключитесь к кластеру Service Fabric, в котором выполняется экземпляр контейнера, на компьютере Mac.

    sfctl cluster select --endpoint http://localhost:19080
    
  2. Перейдите к каталогу проекта и запустите скрипт установки.

    cd MyProject
    bash install.sh
    

Настройка среды разработки .NET Core 3.1

Установите .NET Core SDK 3.1 для Mac, чтобы начать создавать приложения Service Fabric на C#. Пакеты .NET Core для приложений Service Fabric размещены на сайте NuGet.org.

Установка подключаемого модуля Service Fabric для Eclipse на компьютере Mac

Azure Service Fabric предоставляет подключаемый модуль для Eclipse Neon (или более поздней версии) для интегрированной среды разработки Java. Он упрощает процесс создания и развертывания служб Java. Чтобы установить или обновить подключаемый модуль Service Fabric для Eclipse до последней версии, выполните эти действия. Другие шаги в документации Service Fabric для Eclipse также применимы: сборка приложения, добавление службы в приложение, удаление приложения и т. д.

На последнем шаге создается экземпляр контейнера с тем же путем, что и для узла. Для подключаемого модуля требуется, чтобы экземпляр этого типа работал в контейнере Docker на компьютере Mac. Пример:

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, обновите его в файле testclient.sh в приложении Java субъекта Service Fabric.

Дальнейшие действия