Задать вопрос
@EmachinesDIMA
junior DevOps

Как передавать файлы конфигурации с переменными если не через ConfigMap который только для чтения?

Ловлю ошибку запуска nginx в k8s:

1) сбока образа с передачей конфигурации nginx в образ через Dockerfile (как есть: COPY *.conf /etc/nginx/conf.d/)
nginx -T

из пода - файл конфигурации отсутсвует, ошибка пода :
envsubst: error while reading "standard input": Is a directory


2) исключение передачи конфига в Dockerfile и описание его в ConfigMap c переменными ${VIRTUAL_HOST} и ${BRANCH_NAME}.
nginx: [emerg] unknown "branch_name" variable
nginx: configuration file /etc/nginx/nginx.conf test failed

замена переменных не происходит.

А потому, что :
can't create /etc/nginx/conf.d/default.conf: Read-only file system

ConfigMap позволяет добавлять содержимое только для чтения.

Как быть?
  • Вопрос задан
  • 387 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
В официальных образах nginx достаточно создавать их в /etc/nginx/templates/ с суффиксом .template.
Файл с переменными на замену монтируется как /etc/nginx/templates/config.conf.template
Шелл скрипт, дёргаемый энтрипоинтом, копирует с подменой и получается /etc/nginx/conf.d/config.conf
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
13 янв. 2025, в 23:21
2000 руб./в час
13 янв. 2025, в 23:16
10000 руб./за проект
13 янв. 2025, в 21:59
30000 руб./за проект