Я управляю кластером Jenkins, где в Master и Slave оба работают как контейнеры Docker.
Хост - это последняя загрузочная ВМ, работающая на MacOS.
Чтобы разрешить Jenkins выполнять развертывание с использованием Docker, я смонтировал docker.sock и клиент docker с хоста в контейнер Jenkins следующим образом: -
docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v $HOST_JENKINS_DATA_DIRECTORY/jenkins_data:/var/jenkins_home -v $HOST_SSH_KEYS_DIRECTORY/.ssh/:/var/jenkins_home/.ssh/ -p 8080:8080 jenkins
У меня возникают проблемы при подключении тома к контейнерам Docker, которые запускаются внутри контейнера Jenkins. Например, если мне нужно запустить другой контейнер внутри контейнера Jenkins, я делаю следующее:
sudo docker run -v $JENKINS_CONTAINER/deploy.json:/root/deploy.json $CONTAINER_REPO/$CONTAINER_IMAGE
Выше работает контейнер, но файл "deploy.json" НЕ монтируется как файл, а как "Каталог". Даже если я подключу каталог как том, я не смогу просмотреть файлы в результирующем контейнере.
Это проблема из-за прав доступа к файлам из-за Docker в случае Docker?