После двух полных дней чтения и проб, я смиренно пришел сюда, чтобы спросить, как сделать эту работу, потому что ничто из других ответов не помогло мне сделать эту работу.
Я нахожусь на макросе 10.13 .6 (High Sierra)
Работает Docker Рабочий стол для ма c 2.2.0.5 (43884)
Engine: 19.03.8
Compose 1.25.4
Я хочу запустить Дженкинса, чтобы изучить некоторые конвейерные вещи, так что это мой ´ docker -compose.yml´
version: "3.2"
services:
jenkins:
build:
dockerfile: dockerfile
context: ./build
ports:
- "8080:8080"
- "50000:50000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/var/jenkins_home
Первая проблема заключается в том, что в образе, который я использую jenkins/jenkins:lts
, не установлен клиент docker, поэтому даже при подключении сокета через тома, которые я не могу использовать docker version
, вывод этой команды bash: docker: command not found
.
Это мой конвейер только для тестирования (из документации jenkins):
pipeline {
agent { docker { image 'node:6.3' } }
stages {
stage('build') {
steps {
sh 'npm --version'
}
}
}
}
Итак, через это Плагин https://plugins.jenkins.io/docker-plugin/
Я могу go, чтобы "Управление Jenkins> Управление узлами и облаками> Настройка облаков> Добавить новое облако" и "Docker Сведения о облаке ..."
У меня есть URI хоста где я могу поставить "unix: ///var/run/docker.sock", что он будет использовать docker из моего хоста macos, чтобы делать то, что я Нужно сделать nkins.
Я испробовал все предложения от inte rnet, от создания пользователя jenkins, пользователя docker, помещения пользователя jenkins в docker группу e и другие вещи, но ни один из них не работает на ма c.
Подавляющее большинство заданных вопросов относится к linux, и все они, кажется, решили проблему, но когда я пытаюсь выполнить репликацию на макросы, это просто не работа.
Может быть, есть какой-то шаг, который я пропускаю, или люди уже знают, что им нужно выполнить некоторые шаги, но я с треском проваливаюсь.
Некоторые из шаги, которые я попробовал:
создать использовать пользователя и группу jenkins:
sudo dscl . create /Users/jenkins UniqueID 1000 PrimaryGroupID 1000
sudo dscl . create /Groups/jenkins gid 1000
создал группу docker:
sudo dscl . create /Groups/docker gid 1001
Добавил пользователя jenkins в docker group
sudo dscl . append /Groups/docker GroupMembership jenkins
Проверено, действительно ли пользователь находится в группе
$ dsmemberutil checkmembership -u 1000 -g 1001
user is a member of the group
Попытался изменить владельца сокета из контейнера jenkins (вот почему я собирал изображение, но это не сработало)
Пытался изменить владельца сокета на хосте macos, но он просто не меняется. Сокет всегда с этими разрешениями.
lrwxr-xr-x 1 root daemon 68B Apr 28 10:14 docker.sock -> /Users/metasix/Library/Containers/com.docker.docker/Data/docker.sock