Если вы хотите инициировать контейнеры 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»