Вступление

В этой статье описывается процесс создания сервисов с помощью D2C. Все определения и параметры страницы создания (редактирования) сервисов описываются здесь.

Что требуется знать

Для всех сервисов

  • Имена сервисов должны быть уникальны внутри всего аккаунта

  • Директории, которые не должны удаляться после пересборок или редеплоев (пользовательский контент, плагины, логи и т.д.) должны быть указаны в постоянном хранилище. Для этих директорий вы можете включить синхронизацию файлов между всеми контейнерами сервиса. Не используйте синхронизацию для файлов баз данных

  • Все сервисы внутри проекта видны друг для друга. По умолчанию, доступ в Интернет закрыт (кроме NGINX и HAProxy). Вы можете открыть доступ в Интернет в блоке “Порты”

Для сервисов приложений

  • Если вы используете приватный репозиторий, вы должны добавить SSH ключ в ваш аккаунт (инструкции к GitHub и BitBucket)

  • Приложение должно слушать 0.0.0.0:3000 (а не 127.0.0.1:3000)

Для других сервисов

  • У NGINX, NGINX-Static и HAProxy по умолчанию включен доступ в Интернет на порте 80

Параметры и определения

Настройки сервиса

Creating services - Service settings

Параметр Обязательный Комментарии
Имя Да Имя должно быть уникальным внутри всего аккаунта. Больше о именовании
Конфигурация Да Поддерживаемые конфигурации. По умолчанию используется StandAlone
Версия Да Вы можете выбрать любую из поддерживаемых версий здесь. Чаще всего по умолчанию выбрана наиболее стабильная
Password/Root password Нет Пароль или пароль пользователя root. Обязательный для некоторых конфигураций, например MongoDB ReplicaSet
Username Нет Создание пользователя в течении разворачивания. База данных будет создана с таким же именем
UserPassword Нет Пароль для пользователя базы данных
Предустановка Нет Дополнительное программное обеспечение, которое может потребоваться установить вместе с вашим сервисом
PHP дополнения и Pecl пакеты Нет Дополнительные модули для сервисов PHP-FPM и PHP-Apache
Глобальные зависимости Нет Команды для установки глобальных зависимостей вашего сервиса.
Примеры: pip install, bundle install, apt-get install, npm install -g
Команды инициализации Нет Команды, которые выполняются один раз после разворачивания сервиса

Исходники

Только для сервисов приложений и Docker

Creating services - Application source

Параметр Обязательный Комментарии
Git/URL репозитория Нет Пример: https://github.com/d2cio/nodejs-hello-world
Git | ветка\тэг\коммит Нет Вы можете указать ветку, тэг или коммит своего репозитория. Примеры:
branch master, tag v1.4, commit 62d2272bbf7f1c6841c70dd09657df78836fda9c
Git/Метод аутентификации Нет Варианты: SSH (рекомендуется), Login/Password.
Если вы используете приватный репозиторий, вы должны добавить SSH ключ в ваш аккаунт (инструкции к GitHub и BitBucket)
Git/Логин репозитория Нет Логин для базовой аутентификации или для FTP сервера
Git/Пароль репозитория Нет Пароль для базовой аутентификации или для FTP сервера
Скачать/URL Нет Протоколы: http, https, ftp.
Форматы файлов: .tar.bz2, .tar.gz, .tar, .zip
Пример: https://wordpress.org/latest.tar.gz
Скачать/Логин Нет Логин к FTP серверу
Скачать/Пароль Нет Пароль к FTP серверу
Загрузить Нет Вы можете загрузить архив с приложением с вашего компьютера.
Протоколы: http, https, ftp.
Форматы файлов: .tar.bz2, .tar.gz, .tar, .zip
Максимальный размер: 50MB

Настройки приложения

Creating services - volumes

Параметр Обязательный Комментарии
Локальные зависимости и подготовка кода Нет Команды для установки локальных зависимостей и подготовке кода к работе.
Примеры: npm install, composer install, bower install, и т.д. или для подготовки:
Примеры: gulp build, grunt build, и т.д.
Команда запуска Да Команда запуска вашего приложения. Она должна запускать его в основном потоке без демонизации
Переменные окружения Нет

Порты

Creating services - Ports

Параметр Обязательный Комментарии
Доступ из Интернета Да Все сервисы внутри проекты видны друг для друга.
Если вы хотите, чтобы сервис был доступ из Интернета вы можете включить эту опцию и назначить порты.
Выключено по умолчанию для всех сервисов, кроме NGINX и HAProxy
Порты\Протокол Да Варианты: UDP или TCP
Порты\Порт Да Должно указываться целое число

Постоянное хранилище

Creating services - volumes

Параметр Обязательный Комментарии
Добавить папку (Volume) Нет Директории постоянного хранилища (Volumes) - директории, который не должны удаляться после пересборок или редеплоев (пользовательский контент, плагины, логи и т.д.)
Синхронизация Нет В случаях, когда у вас более одного контейнера в сервисе вам может потребоваться синхронизация данных между директориями постоянного хранилища. Отметьте галочкой директории, которые необходимо синхронизировать

Конфиги

Creating services - configs

Параметр Обязательный Комментарии
Добавить пользовательский конфиг Нет У некоторых сервисов есть стандартные конфиги (например, PHP-FPM, PHP-Apache, MongoDB). Вы можете добавлять дополнительные конфиги или редактировать/заменять стандартные

Обслуживаемые сервисы

Только для NGINX, NGINX-Cluster и HAProxy. Вы можете использовать автоматически генерируемые конфиги, редактировать их ли добавлять свои. Домены и сертификаты должны указываться в этом блоке.

Creating services - configure services

Параметр Обязательный Значение по умолчанию Комментарии
Протокол Да HTTP Варианты: HTTP, HTTPS
Режим Да Proxy Варианты: Proxy, uWSGI
Домены Нет Домены и поддомены сервиса
Обслуживать статику Нет Выключено

Выбор серверов

Creating services - select hosts

Отметьте сервер(а), на котором нужно развернуть приложение.