Развертывание на Gigalixir
Исходный кодЦель этого руководства — запустить приложение Phoenix на Gigalixir.
Что нам понадобится
Для этого руководства нам понадобится только работающее приложение Phoenix. Если вам нужно простое приложение для развертывания, следуйте руководству «Начало работы».
Шаги
Разобьем этот процесс на несколько шагов, чтобы нам было проще отслеживать ход работы.
- Инициализировать репозиторий Git
- Установить интерфейс командной строки Gigalixir
- Зарегистрироваться на Gigalixir
- Создать и настроить приложение Gigalixir
- Подготовить базу данных
- Подготовить проект к работе с Gigalixir
- Развернуть приложение!
- Полезные команды Gigalixir
Инициализация репозитория Git
Если вы еще этого не сделали, нужно зафиксировать файлы в Git. Для этого выполним в каталоге проекта следующие команды:
$ git init $ git add . $ git commit -m "Initial commit"
Установка интерфейса командной строки Gigalixir
Следуйте инструкциям здесь, чтобы установить интерфейс командной строки для своей платформы.
Регистрация на Gigalixir
Зарегистрироваться можно на сайте gigalixir.com или с помощью интерфейса командной строки. Воспользуемся интерфейсом командной строки.
$ gigalixir signup # or with a Google account $ gigalixir signup:google
Для бесплатного тарифа Gigalixir не требуется банковская карта. Он включает один экземпляр приложения и одну базу данных PostgreSQL бесплатно. Однако для приложения, используемого в рабочей среде, рекомендуем перейти на платный тариф.
Теперь выполним вход
$ gigalixir login # or with a Google account $ gigalixir login:google
И проверим
$ gigalixir account
Создание и настройка приложения Gigalixir
Есть два способа развернуть приложение Phoenix на Gigalixir: с помощью mix или релизов Elixir. В этом руководстве мы будем использовать релизы Elixir, так как это рекомендуемый способ. Подробнее см. в разделе «Релизы Elixir и Mix». Если вы хотите выполнить развертывание с помощью mix, следуйте руководству по развертыванию Phoenix с Mix.
Создание приложения Gigalixir
Создадим приложение Gigalixir
$ gigalixir create -n "your-app-name"
Примечание: впоследствии изменить имя приложения нельзя. Если не указать имя, будет сгенерировано случайное.
Указание версий
Для Gigalixir необходимо указать версии Erlang и Elixir, которые вы собираетесь использовать. Как правило, в рабочей среде лучше запускать те же версии, что и в среде разработки. Например:
$ echo 'elixir_version=1.17.2' > elixir_buildpack.config $ echo 'erlang_version=27.0' >> elixir_buildpack.config $ git add elixir_buildpack.config
Если вы не укажете версию nodejs, Gigalixir будет использовать последнюю версию. Чтобы указать версию nodejs, выполните следующие действия:
$ echo 'node_version=22.7.0' > phoenix_static_buildpack.config $ git add elixir_buildpack.config phoenix_static_buildpack.config assets/package.json
Наконец, не забудьте зафиксировать изменения:
$ git commit -m "Set versions"
Подготовка базы данных
Подготовим базу данных для приложения. Чтобы создать бесплатную базу данных, выполните следующую команду
$ gigalixir pg:create --free
Для базы данных, готовой к использованию в рабочей среде, перейдите на тариф Standard и создайте базу данных уровня Standard
$ gigalixir account:upgrade $ gigalixir pg:create
Проверьте, что база данных создана
$ gigalixir pg
Проверьте, что были созданы DATABASE_URL и POOL_SIZE
$ gigalixir config
Подготовка проекта к работе с Gigalixir
Для запуска приложения на Gigalixir ничего делать не нужно, но для приложения, используемого в рабочей среде, вероятно, стоит принудительно включить SSL.
Защита подключения к базе данных
Также можно использовать SSL для подключения к базе данных. В файле config/runtime.exs:
ssl: [ verify: :verify_peer, cacerts: :public_key.cacerts_get() ]
Время развертывания!
Теперь проект готов к развертыванию на Gigalixir. Убедитесь, что все изменения зафиксированы в Git, и выполните следующую команду:
$ git push gigalixir
Проверьте состояние развертывания и дождитесь, пока приложение не будет Healthy
$ gigalixir ps
Выполните миграции
$ gigalixir ps:migrate
Проверьте журналы приложения
$ gigalixir logs
Если все выглядит хорошо, посмотрим на приложение, работающее на Gigalixir
$ gigalixir open
Полезные команды Gigalixir
Откройте удаленную консоль
$ gigalixir account:ssh_keys:add "$(cat ~/.ssh/id_rsa.pub)" $ gigalixir ps:remote_console
Инструкции по настройке кластеризации см. в разделе «Кластеризация узлов»
Информацию о пользовательских доменах, масштабировании, задачах и других функциях см. в документации Gigalixir.
Устранение неполадок
См. разделы «Устранение неполадок» и «Часто задаваемые вопросы»
Также вы можете написать по адресу help@gigalixir.com или запросить приглашение и присоединиться к каналу #gigalixir в Slack.
© 2014 Chris McCord
Licensed under the MIT License.
https://phoenix.hexdocs.pm/gigalixir.html