Я знаю, что это очень специфично, sssd.conf
то есть. Но на COPY
(или ADD
) sssd.conf
Я получаю ту же ошибку:
ERROR: Service 'samba_adc' failed to build: failed to copy files: failed to copy file: Error processing tar file(exit status 1): Error setting up pivot dir: mkdir /share/CACHEDEV1_DATA/virtual_machines/container-station-data/lib/docker/overlay/332546c2c487355deb45468b291abacce80701b04c6061575887eceb3858a6cd/merged/etc/sssd/conf.d/.pivot_root030453588: operation not permitted
Не удается поместить что-либо в каталог позже во время выполнения:
# echo "sssd was here" > /etc/sssd/foo
bash: /etc/sssd/foo: Operation not permitted
chmod не работает ни с чем в каталоге
# chmod 755 /etc/sssd
chmod: changing permissions of '/etc/sssd': Operation not permitted
Помещение USER root
до того, как команда ничего не сделает. Это докер 17.07
так --chown=root
невозможно.
Runnng lsattr
/ chattr
тоже бесполезно:
# chattr -i /etc/sssd
chattr: Inappropriate ioctl for device while reading flags on /etc/sssd
Некоторые другие попытки разобраться в этом:
# rmdir /etc/sssd
rmdir: failed to remove '/etc/sssd': Directory not empty
# su sssd
# echo "sssd was here" > /etc/sssd/foo
bash: /etc/sssd/foo: Operation not permitted
На данный момент я сбит с толку, Google больше ничего мне не дал, я надеюсь, что что-то упускаю. Если вам нужны мои полные источники, они здесь (гитхаб).
редактировать, добавляя информацию:
docker -D info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 59
Server Version: 17.07.0-ce
Storage Driver: overlay
Backing Filesystem: extfs
Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: (expected: 3addd840653146c90a254301d6c3a663c7fd6429)
runc version: N/A (expected: 2d41c047c83e09a6d61d464906feb2a2f3c52aa4)
init version: 949e6fa
Kernel Version: 4.2.8
Operating System: QTS 4.3.4 (20180315)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.682GiB
Name: NAS
ID: CTVG:6D5G:WCK4:PXAX:GCYG:HPKN:25A2:N4AC:TRXT:ADAS:XTPB:DI2E
Docker Root Dir: /share/CACHEDEV1_DATA/virtual_machines/container-station-data/lib/docker
Debug Mode (client): true
Debug Mode (server): true
File Descriptors: 70
Goroutines: 80
System Time: 2018-03-28T11:11:47.511378666-07:00
EventsListeners: 1
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No kernel memory limit support
docker version
Client:
Version: 18.03.0-ce
API version: 1.31 (downgraded from 1.37)
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:10:06 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 17.07.0-ce
API version: 1.31 (minimum version 1.12)
Go version: go1.8.3
Git commit: fd7dc00
Built: Thu Feb 8 15:57:38 2018
OS/Arch: linux/amd64
Experimental: false
хозяин uname -r
uname -r
4.2.8
Оказывается, проблема в слоях. В некоторых случаях после создания слоя нельзя изменить разрешения для файлов этого слоя. ( Примечание: Я не уверен, что именно в каких случаях можно использовать, а какие нет. Таким образом, хотя ничто из того, что я делаю на каком-либо предыдущем уровне, возможно, не позволило бы мне изменить разрешения, владение и т. Д. Конкретного файла, созданного на предыдущем уровне. Если я сделаю это на слое или раньше, с чем-то вроде touch <blahfile> && chmod 600 <blahfile>
это вполне работоспособно. Как что-то вроде (и мое окончательное решение):
apt install sssd <and other requirements> && chmod 755 /etc/sssd
Пользователи, которых вы используете для выполнения своих операций, не имеют прав на запись в родительский каталог.