Я не могу понять, что может быть не так с разрешениями файловой системы Docker.
Короче говоря, я использую Jenkins для некоторых этапов автоматизации тестирования, которые используют контейнер Docker на Windows like:
Хост Jenkins (Linux) -> Docker контейнер (на агенте Windows)
Для более подробной информации я использую контейнер стиля Windows в Docker .
Вот версии:
- Windows 10 v1909
- Docker Рабочий стол: 2.1.0.5 стабильный (Двигатель: 19.03.5)
- Jenkins 2.190.3 stable
Вот соответствующая строка Dockerfile для создания изображения:
FROM mcr.microsoft.com/windows/servercore/insider:10.0.18362.113-amd64
Изображение создано без ошибок.
Я подключаю каталог из агента Win в качестве тома к контейнеру в сценарии конвейера Jenkins (сопоставил каталог «работа» с контейнером).
Отображение тома (host_dir: incontainer_dir):
-v c:\Users\user\work:c:\work
Я упростил сценарий, чтобы определить проблему, поэтому в сценарии конвейера есть команда копирования t:
stages {
stage('Win') {
steps {
bat "cd c:\work && cp -r Data Copy"
}
}
}
Контейнер успешно запускается и делает копию папки Data с именем Copy, как и ожидалось. (Этот шаг выполняется запущенным Docker контейнером.)
Но я получил ошибку разрешения файла из контейнера.
После некоторых исследований я обнаружил, что каталог Copy (создан непосредственно контейнером). вне контейнера, но в файловой системе агента) не имеет владельца.
Результат выполнения команды dir на собственном Windows агенте:
C:\Users\user\work>dir /N /Q
Volume in drive C has no label.
Volume Serial Number is 2EF3-077C
Directory of C:\Users\user\work
Date Time Type Size Owner Name
2020. 01. 07. 15:55 <DIR> DESKTOP-6PSFAAK\user .
2020. 01. 07. 15:55 <DIR> NT AUTHORITY\SYSTEM ..
2020. 01. 07. 15:55 <DIR> ... Copy
2020. 01. 06. 13:54 <DIR> DESKTOP-6PSFAAK\user Data
2 File(s) 1 200 bytes
5 Dir(s) 347 321 208 832 bytes free
As Вы можете видеть владельца Каталог копирования упоминается как "..." три точки. Когда я пытаюсь удалить этот каталог, система запрашивает права администратора.
Я думаю, что это может быть причиной ошибки разрешения файловой системы.
Что может быть не так?