Spec-Zone.ru › Phoenix

mix phx.gen.release

Исходный код

Создаёт файлы релиза и необязательный Dockerfile для развёртывания на основе релизов.

Создаются следующие файлы релиза:

  • lib/app_name/release.ex — модуль релиза, содержащий задачи для выполнения миграций внутри релиза

  • rel/overlays/bin/migrate — скрипт миграции для удобного запуска миграций системы релизов

  • rel/overlays/bin/server — серверный скрипт для удобного запуска системы релизов с переменными среды и запуска веб-сервера Phoenix

Обратите внимание: каталог rel/overlays по умолчанию копируется в сборку релиза при запуске mix release.

Чтобы не создавать файлы, связанные с миграциями, используйте флаг --no-ecto. Чтобы принудительно создать эти файлы, используйте флаг --ecto.

Docker

При передаче флага --docker создаются следующие файлы Docker:

  • Dockerfile — Dockerfile для использования в любом стандартном развёртывании Docker

  • .dockerignore — файл исключений Docker со стандартными настройками по умолчанию для Elixir

По умолчанию при сборке используется базовый образ, соответствующий активным версиям в вашей системе разработки на момент генерации. Чтобы изменить эти значения по умолчанию, укажите:

  • otp — версию OTP

  • elixir — версию Elixir

Для расширенной настройки релиза вместе с этой задачей можно использовать задачу mix release.init. Дополнительные сведения см. в документации Mix.Release.

Если вы используете сторонние менеджеры пакетов JS, например npm или yarn, потребуется обновить созданный Dockerfile, добавив шаг для загрузки этих пакетов. Например:

...
ARG RUNNER_IMAGE="debian:..."

FROM node:20 as node
COPY assets assets
RUN cd assets && npm install

FROM ${BUILDER_IMAGE} as builder

...

COPY assets assets
COPY --from=node assets/node_modules assets/node_modules
...

Если вы используете esbuild через Node.js или другие инструменты сборки JavaScript, описанный выше подход также можно изменить, чтобы запускать их на этапе node, например:

FROM node:20 as node
COPY assets assets
RUN cd assets && npm install && node build.js --deploy

Обратите внимание, что может потребоваться настроить задачу assets.deploy так, чтобы она не запускала Node.js повторно.

Сводка

Функции

otp_vsn()

Функции

otp_vsn()Исходный код

Пакет Hex Предварительный просмотр Hex Скачать версию ePub

Создано с помощью ExDoc (v0.40.3) для языка программирования Elixir

© 2014 Chris McCord
Licensed under the MIT License.
https://phoenix.hexdocs.pm/Mix.Tasks.Phx.Gen.Release.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API