# Переменные инстанса и конфигурация ## Принцип - **jsonEnv** — только секреты. Задаются при создании инстанса, НЕ меняются (modify не поддерживает). - **Dockerfile ENV** — всё несекретное. Меняются через правку Dockerfile → rebuild → push → redeploy. - **Go-код** — `os.Getenv()` с fallback'ами, без хардкода. ## jsonEnv (создание инстанса) ```json { "S3_ACCESS_KEY": "...", "S3_SECRET_KEY": "..." } ``` | Переменная | Назначение | |---|---| | `S3_ACCESS_KEY` | Доступ к S3 | | `S3_SECRET_KEY` | Доступ к S3 | ## Dockerfile ENV (rebuild) ```dockerfile ENV S3_ENDPOINT=s3.msk-1.ngcloud.ru \ S3_BUCKET=terraform-registry \ S3_PREFIX=go-registry.containerk8s.dev.nubes.ru \ REGISTRY_HOSTNAME=go-registry.containerk8s.dev.nubes.ru \ PORT=5000 ``` | Переменная | Назначение | Пример | |---|---|---| | `S3_ENDPOINT` | Адрес S3 | `s3.msk-1.ngcloud.ru` | | `S3_BUCKET` | Имя бакета | `terraform-registry` | | `S3_PREFIX` | Префикс S3-ключей | `go-registry.containerk8s.dev.nubes.ru` | | `REGISTRY_HOSTNAME` | Домен реестра (для download_url) | `go-registry.containerk8s.dev.nubes.ru` | | `PORT` | Порт HTTP | `5000` | ## При создании нового инстанса (другой домен/стенд) 1. В Dockerfile поменять `S3_PREFIX`, `REGISTRY_HOSTNAME` под новый домен 2. Поменять `S3_ENDPOINT`, `S3_BUCKET` если S3 другой 3. `docker build && docker push` 4. Создать инстанс: `registryPath` → образ, `jsonEnv` → ключи S3 ## Смена окружения Не менять инстанс — создать новый с другими параметрами. Старый удалить. | Окружение | Домен | S3_PREFIX | |---|---|---| | Тест | `go-registry.containerk8s.dev.nubes.ru` | `go-registry.containerk8s.dev.nubes.ru` | | Прод | (будет отдельно) | (будет отдельно) |