<aside> 📌 아래 install_docker.sh의 도커 설치 스크립트는 라즈베리파이(arm)가 아닌 amd용이다.
</aside>
젠킨스 도커 컨테이너에서 docker를 실행할려고 보니 docker가 없다고 합니다.
docker: not found
그래서 젠킨스 도커 컨테이너 내에서 docker를 설치 및 실행(Docker in Docker)할까 했지만, 권장되는 방식이 아니랍니다.
젠킨스 도커 이미지 내에 docker를 설치하지만, 호스트 서버에 이미 설치되어 있는 docker를 이용하여 docker를 실행하는 방법입니다.
mkdir jenkins-docker
cd jenkins-docker
vi install_docker.sh
------------------------------------
#!/bin/sh
apt-get update
apt-get -y install apt-transport-https \\
apt-utils \\
ca-certificates \\
curl \\
gnupg2 \\
zip \\
unzip \\
software-properties-common
curl -fsSL <https://download.docker.com/linux/$>(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey
add-apt-repository \\
"deb [arch=amd64] <https://download.docker.com/linux/$>(. /etc/os-release; echo "$ID") \\
$(lsb_release -cs) \\
stable" && \\
apt-get update
apt-get -y install docker-ce
------------------------------------
vi Dockerfile
------------------------------------
FROM jenkins/jenkins:lts
USER root
COPY install_docker.sh /install_docker.sh
RUN chmod +x /install_docker.sh
RUN /install_docker.sh
RUN usermod -aG docker jenkins
USER jenkins
------------------------------------
docker hub 에 이미지를 업로드 합니다. 계정이 없다면 먼저 계정을 생성해 줍니다.
docker build -t skyer9/jenkins-docker:0.0.1 .
docker build -t skyer9/jenkins-docker:latest .
docker login
docker push skyer9/jenkins-docker:0.0.1
docker push skyer9/jenkins-docker:latest
젠킨스 도커 이미지 실행시 아래의 명령으로 호스트 서버의 docker.sock
를 공유하여 시작합니다.
docker run -v /var/run/docker.sock:/var/run/docker.sock ...