Добавить в корзинуПозвонить
Найти в Дзене
Павлин Шарит

Переменные среды: когда export, а когда inline

Переменные среды: когда export, а когда inline В повседневной разработке постоянно приходится работать с переменными окружения - и есть два основных способа их задать export VAR=value — устанавливает переменную для текущей сессии терминала: export DATABASE_URL="postgresql://localhost/mydb" python manage.py runserver VAR=value command — задает переменную только для одной команды: DATABASE_URL="postgresql://localhost/mydb" python manage.py runserver Когда использовать каждый подход: export подходит когда: - Переменная нужна для нескольких команд подряд - Работаете в режиме разработки и часто запускаете разные команды - Хотите посмотреть все переменные через env inline лучше для: - Разовых команд с особыми настройками - Скриптов где нужна изоляция - Когда не хотите "засорять" сессию временными переменными # Для тестов с другой базой TEST_DB="postgresql://localhost/test_db" pytest # Запуск с debug режимом DEBUG=1 python app.py # Production deploy с особыми настройками ENV=productio

Переменные среды: когда export, а когда inline

В повседневной разработке постоянно приходится работать с переменными окружения - и есть два основных способа их задать

export VAR=value — устанавливает переменную для текущей сессии терминала:

export DATABASE_URL="postgresql://localhost/mydb"

python manage.py runserver

VAR=value command — задает переменную только для одной команды:

DATABASE_URL="postgresql://localhost/mydb" python manage.py runserver

Когда использовать каждый подход:

export подходит когда:

- Переменная нужна для нескольких команд подряд

- Работаете в режиме разработки и часто запускаете разные команды

- Хотите посмотреть все переменные через env

inline лучше для:

- Разовых команд с особыми настройками

- Скриптов где нужна изоляция

- Когда не хотите "засорять" сессию временными переменными

# Для тестов с другой базой

TEST_DB="postgresql://localhost/test_db" pytest

# Запуск с debug режимом

DEBUG=1 python app.py

# Production deploy с особыми настройками

ENV=production WORKERS=4 gunicorn app:app

Inline-подход удобнее в CI/CD и скриптах - переменные живут только в рамках одной команды и не влияют на остальное окружение

Поддержать на Boosty

Посмотреть на Youtube