@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 позволяет добавлять содержимое только для чтения.

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

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

Войти через центр авторизации
Похожие вопросы