Отказано в доступе для Docker Gitlab после получения хука
У меня Gitlab установлен в Docker-контейнере с этой командой:
sudo docker run --detach \
--hostname git.example.com \
--publish 443:443 --publish 80:80 --publish 2201:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
--volume /srv/gitlab/mounts:/etc/gitlab/mounts \
gitlab/gitlab-ce:latest
Затем я смонтировал несколько сетевых NTFS-модулей с
mount.cifs -o username=gituser,password=somepassword,uid=997,gid=994 "//10.10.10.16/Git" /srv/gitlab/mounts/shared_folder
Так что я могу получить доступ к этой папке в контейнере, который я пробовал и работает просто отлично. Проблема возникает, когда я хочу использовать хук после получения, как этот
#!/usr/bin/env bash
while read oldrev newrev ref
do
DATE=`date '+%Y-%m-%d %H:%M:%S'`;
if [[ $ref =~ .*/master$ ]];
then
echo $DATE >> logProd.txt
git --work-tree=/mnt/gitlab/shared_folder/production --git-dir=/var/opt/gitlab/git-data/repositories/repo.git checkout -f m$
echo "Master ref received. Deploying master branch to production...">> logProd.txt
fi
if [[ $ref =~ .*/desarrollo$ ]];
then
echo $DATE >> logDevelop.txt;
echo "Desarrollo ref received. Deploying develop branch to develop...">> logDevelop.txt
git --work-tree=/mnt/gitlab/shared_folder/developement--git-dir=/var/opt/gitlab/git-data/repositories/repo.git checkout -f developement
echo "Desarrollo ref received. Deploying finished">> logDevelop.txt
fi
if [[ $ref =~ .*/testing$ ]];
then
echo $DATE >> logTesting.txt;
echo "Testing ref received. Deploying testing branch to testing...">> logTesting.txt
git --work-tree=/mnt/gitlab/shared_folder/testing --git-dir=/var/opt/gitlab/git-data/repositories/repo.git checkout -f testing
echo "Testing ref received. Deploying finished">> logTesting.txt
fi
done
Затем, когда я нажимаю на репо, я получаю несколько "Отказано в доступе", и, несмотря на то, что принудительное завершение фактически завершено, папка не копируется в папку NTFS.
Я думаю, что проблема связана с разрешениями пользователя, который выполняет хук post-receive.sh внутри контейнера Docker, но я попытался изменить папки на 777 разрешений, и это не дает никакого эффекта, они возвращаются по умолчанию к своим предыдущим разрешениям,
Я попытался создать папку внутри NTFS, к которой у него есть общий доступ с корневым пользователем контейнеров, и она работает просто отлично, но с пользователями git я получаю сообщение "ошибка: невозможно создать файл README.md: в доступе отказано" для каждого файла.