Конфигурация релиза и скрипты запуска
Освойте sys.config и скрипты запуска для настройки окружений приложений и управления точной последовательностью запуска релиза Erlang.
«Конфигурация релиза и скрипты запуска» — бесплатный урок Erlang OTP: Distributed & Fault-Tolerant Systems Programming на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Erlang OTP: Distributed & Fault-Tolerant Systems Programming, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Erlang OTP: Distributed & Fault-Tolerant Systems Programming содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
What Is Release Configuration?
A release bundles your applications, the Erlang runtime, and configuration. Two files drive runtime behaviour: sys.config for application settings and the boot script for the startup sequence.
The Application Environment
Each OTP application has an environment — a set of key/value parameters. You read them at runtime with application:get_env/2.
application:get_env(my_app, port).sys.config Structure
sys.config is a single Erlang term: a list of {App, [{Key, Value}]} tuples that override application defaults at boot.
[
{my_app, [{port, 8080}, {pool_size, 10}]},
{kernel, [{logger_level, info}]}
].Overriding Defaults
Values in sys.config override those in each app .app file. This lets one codebase run differently per environment (dev, staging, prod) just by swapping config.
Reading Config at Runtime
Inside a gen_server init, pull configured values so behaviour follows the environment.
init([]) ->
{ok, Port} = application:get_env(my_app, port),
{ok, listen(Port)}.What Is a Boot Script?
The boot script (.script compiled to .boot) lists every application and module to load, and the order to start them. The runtime follows it to bring the system up deterministically.
Generated from the .rel File
You describe a release in a .rel file. Tools like systools or rebar3 turn it into the boot script.
{release,
{"my_system", "1.0.0"},
{erts, "13.0"},
[{kernel, "8.0"}, {stdlib, "4.0"}, {my_app, "1.0.0"}]}.Start Phases
Applications start in dependency order. If my_app lists kernel and stdlib as dependencies, the boot script guarantees they start first.
Permanent vs Temporary Apps
In the boot script an application can be permanent (its crash takes down the node), transient, or temporary. Choose permanent for core services.
Layered Config with config/0
You can split configuration across files and merge them, or use runtime os:getenv/1 reads for secrets that should not live in sys.config.
init([]) ->
Url = os:getenv("DATABASE_URL"),
{ok, connect(Url)}.Applying a Custom Config File
At node startup you point to a config file with the -config flag, letting one release run with different settings just by swapping the file.
erl -config /etc/my_system/prod.config -boot my_systemQuick Check
Test your release configuration knowledge.
Recap
You learned how releases are configured and started:
sys.configsets the application environment per deployment- Read values with
application:get_env/2 - The
.relfile is compiled into a boot script - Boot scripts start applications in dependency order
- Use permanent apps for core services and env vars for secrets
Часто задаваемые вопросы
Урок «Конфигурация релиза и скрипты запуска» бесплатный?
Да — полный текст урока «Конфигурация релиза и скрипты запуска» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Erlang OTP: Distributed & Fault-Tolerant Systems Programming, подпишись на CoddyKit PRO. Курс Erlang OTP: Distributed & Fault-Tolerant Systems Programming содержит 4 уроков всего.
Чему я научусь в уроке «Конфигурация релиза и скрипты запуска»?
Освойте sys.config и скрипты запуска для настройки окружений приложений и управления точной последовательностью запуска релиза Erlang. Ты практикуешь Erlang OTP: Distributed & Fault-Tolerant Systems Programming с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Erlang OTP: Distributed & Fault-Tolerant Systems Programming?
Предыдущий опыт не требуется. Erlang OTP: Distributed & Fault-Tolerant Systems Programming на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Конфигурация релиза и скрипты запуска»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Erlang OTP: Distributed & Fault-Tolerant Systems Programming?
Да. Каждый урок Erlang OTP: Distributed & Fault-Tolerant Systems Programming включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Создание выпусков Erlang
- Горячая загрузка и обновление кода
- Версионирование и развёртывание выпусков
- Конфигурация релиза и скрипты запуска