У меня есть Dockerfile следующим образом:
FROM jenkins/jenkins:2.119
USER jenkins
ENV HOME /var/jenkins_home
COPY --chown=jenkins:jenkins ssh ${HOME}/.ssh/
RUN chmod 700 ${HOME}/.ssh && \
chmod 600 ${HOME}/.ssh/*
Каталог ssh имеет 755/644 в файле dir / на сборочной машине. Тем не менее, когда я строю с
docker build -t my/temp .
и запустите образ командой ls
docker run -it --rm my/temp ls -la /var/jenkins_home/.ssh
ни одна из команд chmod не применяется к изображению
drwxr-xr-x 2 jenkins jenkins 4096 May 3 12:46 .
drwxr-xr-x 4 jenkins jenkins 4096 May 3 12:46 ..
-rw-r--r-- 1 jenkins jenkins 391 May 3 11:42 known_hosts
Во время сборки вижу
Step 4/6 : COPY --chown=jenkins:jenkins ssh ${HOME}/.ssh/
---> 58e0d8242fac
Step 5/6 : RUN chmod 700 ${HOME}/.ssh && chmod 600 ${HOME}/.ssh/*
---> Running in 0c805d4d4252
Removing intermediate container 0c805d4d4252
---> bbfc828ace79
Похоже, chmod отбрасывается. Как я могу остановить это?
Я использую последнюю версию Docker (Edge) на Mac OSX
Версия 18.05.0-ce-rc1-mac63 (24246); край 3b5a9a44cd
EDIT
С --rm также не работал (после удаления изображения и перестроения), но не получил сообщение об удалении
docker build -t my/temp --rm=false .
run -it --rm my/temp ls -la /var/jenkins_home/.ssh
drwxr-xr-x 2 jenkins jenkins 4096 May 3 15:42 .
drwxr-xr-x 4 jenkins jenkins 4096 May 3 15:42 ..
-rw-r--r-- 1 jenkins jenkins 391 May 3 11:42 known_hosts
РЕДАКТИРОВАТЬ 2
Таким образом, в основном ошибка в Docker, когда базовый образ с VOLUME приводит к сбою chmod и, аналогично, RUN mkdir на томе завершается ошибкой, но COPY делает, но оставляет каталог с неправильными разрешениями. Благодаря bkconrad .
РЕДАКТИРОВАТЬ 3
Создана вилка с исправлением здесь https://github.com/systematicmethods/jenkins-docker
build.sh создаст образ локально