Если вы хотите инициировать контейнеры Docker из ваших контейнеров Jenkin, это то, что вам нужно сделать:
- В Dockerfile Jenkins Dockerfile добавьте команды Docker, Docker-Compose.
- Привяжите спинку Docker.
И это все! Так выглядит Dockerfile:
Дженкинс Dockerfile
FROM jenkins/jenkins # Docker install USER root RUN apt-get update && apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg2 \ software-properties-common \ RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - RUN apt-key fingerprint 0EBFCD88 RUN add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ stable" RUN curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose \ && chmod +x /usr/local/bin/docker-compose RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins
Теперь, чтобы построить изображение:
docker build -t jenkins-docker .
Чтобы запустить Docker-Image, включая Mounts: Mounts:
docker run -d --group-add $(stat -c '%g' /var/run/docker.sock) \ -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 -p 50000:50000 \ -v `pwd`/jenkins:/var/jenkins_home --log-opt max-size=50k --log-opt max-file=5 --name jenkins -P jenkins-docker
Здесь вы можете увидеть файл docker.sock был установлен. Кроме того, папка jenkins_home была установлена, чтобы вы могли сохранить информацию о вашем трубопроводе/конфигурации/пользователях и т. Д. Не забудьте взять резервную копию каталога jenkins_home!
Я загрузил Makefile и аналогичный Dockerfile на GitHub.
И это все!
Оригинал: «https://dev.to/dhingrachief/run-docker-commands-inside-jenkins-docker-k6d»