volumes:
- ./config/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
и тогда докер положит файл в каталог /etc/rabbitmq, не трогая остальные файлы.
если я в кубере монтирую так, то он монтирует целиком папку(кладет конфигмап, остальное затирает)
volumeMounts:
- name: config
mountPath: /etc/rabbitmq
volumes:
- name: config
configMap:
name: rabbitmq-configmap
configmap:
apiVersion: v1
kind: ConfigMap
metadata:
name: rabbitmq-configmap
namespace: $HARBOR_PROJECT-$CI_COMMIT_REF_NAME
data:
rabbitmq.conf: |
default_user = $rabbit_user
default_pass = $rabbit_password
management.path_prefix = /rabbitmq
что я делаю не так, как мне cm положить прямо файлом, чтобы он не затер остальные конфиги в директории?
никак, volume монтируется как папка. Мне теперь стало очень интересно, какой магией докер-композ подкладывал 1 файл, это не похоже на монтирование volume
ну в докер-композ такая конструкция работает, я хз( скрин из ктнтейнера. прост оу меня вольмом для монтирования указан файл, а не папка
Могу подтвердить оратора ниже в композе это работало
subPath
Нет, volume может быть как папкой так и файлом. Это уже особенности кубера - по дефолту он конфигмапы и секреты монтирует как папки, а каждый ключ делает файлом. Как уже выяснили выше, можно явно задать путь монтирования и монтировать отдельный файл. Есть ещё projected volumes - ещё один способ точно управлять монтированием конфигмапов/секретов с точностью до файлов.
Обсуждают сегодня