> no, web-app/.env already will have these variables. Do not specify them again

● You're absolutely right! The env_file: - apps/web-app/.env already handles it. Let me remove the redundant environment section:


В docker compose + Dockerfile есть штук 5 способов передать env variables для приложения.

Мне удобен подход, когда мы храним весь файл .env в одной переменной в github/gitlab - т. е. просто создаем новую переменную WEB_APP_ENV_FILE и кладем туда контент .env.

Далее, во время ci/cd, берем значения оттуда, создаем файл .env рядом с сорсами приложения и билдим.

В compose.yaml я указываю путь к этому файлу через

web-app:
    build:
        context: .
        dockerfile: ./apps/web-app/Dockerfile
    env_file:
        apps/web-app/.env


Таким образом, env variables из .env сразу доступны внутри Dockerfile и не нужно никаких лишних телодвижений

Проблема в том, что нейронки кто-то научил делать по-другому - указывать ARGS внутри Dockerfile и перечислять там КАЖДУЮ переменную из .env файла, что ведет к тому, что у нас теперь более одного source of truth в проекте и управлять переменными теперь надо не только из .env файлика, но и из Dockerfile.

И вот каждый раз приходится по 3-4 раза объяснять как нужно сделать, но они всё равно пытаются сделать по-своему. Что sonnet, что codex. Это какой то ужас!
Они игнорируют compose.yaml файл, который если почитать, то станет очевидно, как мы работаем с переменными в проекте, но им пофиг.

Вот тут теперь становится понятна логика свидетелей T9 - видимо они пишут на непопулярных языках, примеров которых было мало в интернете, по сравнению с TS/Python))

✔️ Timur Khakhalev про AI Coding, подписывайтесь!
Открыть в Telegram
 
 
Back to Top