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 - ещё один способ точно управлять монтированием конфигмапов/секретов с точностью до файлов.
Обсуждают сегодня