Я озадачен странным поведением docker + compose (в среде роя) при использовании config.
В общем, у меня такая установка:
version: '3.6'
configs:
users777.xml:
file: "./users.xml"
users666.xml:
file: "./users.xml"
users644.xml:
file: "./users.xml"
users444.xml:
file: "./users.xml"
users400.xml:
file: "./users.xml"
services:
ubuntu:
image: ubuntu:18.04
configs:
- source: users777.xml
target: /app/geoserver/data/security/usergroup/default/users777.xml
uid: '10000'
gid: '10000'
mode: 777
- source: users666.xml
target: /app/geoserver/data/security/usergroup/default/users666.xml
uid: '10000'
gid: '10000'
mode: 666
- source: users644.xml
target: /app/geoserver/data/security/usergroup/default/users644.xml
uid: '10000'
gid: '10000'
mode: 644
- source: users444.xml
target: /app/geoserver/data/security/usergroup/default/users444.xml
uid: '10000'
gid: '10000'
mode: 444
- source: users400.xml
target: /app/geoserver/data/security/usergroup/default/users400.xml
uid: '10000'
gid: '10000'
mode: 400
command: tail -F anything
Я ожидал, что "режим" будет точным результатом в результирующем контейнере... Таким образом, я запустил стек (развертывание стека докеров...)... и заметил, что это не так:
root@2af60b451971:/app/geoserver/data/security/usergroup/default# ll
total 28
-rw--w---- 1 10000 10000 285 Dec 18 15:26 users400.xml
-rw-rwxr-- 1 10000 10000 285 Dec 18 15:26 users444.xml*
--w----r-- 1 10000 10000 285 Dec 18 15:26 users644.xml
--w--wx-w- 1 10000 10000 285 Dec 18 15:26 users666.xml*
-r----x--x 1 10000 10000 285 Dec 18 15:26 users777.xml*
Некоторые фрагменты информации, которые мне помогают:
Документ, похоже, не отвечает здесь на вопрос «почему» (или не так, как я понимаю).
Это может быть очевидно, но здесь мне может понадобиться некоторое объяснение. Любой?
На самом деле это работает правильно, если вы добавите начальный 0 к значениям режима:
400 -> 0400
444 -> 0444
644 -> 0644
666 -> 0666
777 -> 0777
Я исправил режимы вашего compose.yml и развернул его как стек «config». Маска разрешения, как и ожидалось:
me:~$ docker exec -ti $(docker ps -q --filter name=config_ubuntu) ls -l /app/geoserver/data/security/usergroup/default
total 20
-r-------- 1 10000 10000 5 Dec 19 21:06 users400.xml
-r--r--r-- 1 10000 10000 5 Dec 19 21:06 users444.xml
-rw-r--r-- 1 10000 10000 5 Dec 19 21:06 users644.xml
-rw-rw-rw- 1 10000 10000 5 Dec 19 21:06 users666.xml
-rwxrwxrwx 1 10000 10000 5 Dec 19 21:06 users777.xml
Но не забывайте, что конфиги и секреты всегда монтируются только для чтения!
Это было так очевидно! Большое спасибо за указание на мое недоразумение: вы спасли мою неделю!