๐ป ๋ฌธ์
Jenkins๋ฅผ Docker๋ก ์ค์น๋ฅผ ํด์ ๋ด๋ถ์์ ๋์ปค๋ก ์คํ์ํค๊ณ ์ถ์๋ค. (Docker In Docker)
ํ์ง๋ง ์ฒ์์ ์ด๋ ๊ฒ Jenkins๋ฅผ ์ค์นํ๋ค๊ฐ ๋ฌด์ํ ์ฝ์ง์ ํ๊ฒ ๋์๋ค.
sudo docker run -d --name jenkins -p 8080:8080 jenkins/jenkins:jdk11
1. Jenkins๋ฅผ ์คํํ์ ๋, ๋ด๋ถ์ ๋์ปค๊ฐ ์ค์น๋์ด ์์ง ์์์ Docker ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์์๋ค.
2. ๊ทธ๋์ Jenkins ์์ Docker๋ฅผ ์ค์นํ๋ ค๊ณ ํ๋๋ root๋ก ์ ์ํ๋ผ๊ณ ํ๋ค.
3. ๊ทธ๋์ root๋ก ์ ์ํด์ ์ค์นํ๋ ค๊ณ ํ๋๋ cli๋ก ์ค์น๊ฐ ์๋๋ค๊ณ ํ๋ค.
๐ ์์ธ
1) ๋์ปค ์ปจํ ์ด๋ ๋ด๋ถ์์ ๋์ปค๋ก ์คํ์ํค๋ ค๋ฉด, ๋์ปค ์์ผ์ผ๋ก ์ฐ๊ฒฐํด์ผ ํ๋ค.
* ๋์ปค๋ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋์ ์์ผ์ ํตํด ํต์ ์ ํ๋ค.
๋์ปค ์์ผ์ ๋์ปค ํด๋ผ์ด์ธ๋์ ๋์ปค ์๋ฒ(๋ฐ๋ชฌ) ์ฌ์ด์์ ๋ช ๋ น์ด๋ฅผ ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค.
์ฆ, ๋์ปค ๋ช ๋ น์ด๋ฅผ ์จ์ Jenkins๋ฅผ ์คํํ๋ ค๋ฉด ๋์ปค ์์ผ์ด ์์ด์ผ ํ๋ค.
2) Jenkins์ ๊ถํ์ด root๊ฐ ์๋๋ผ์ Docker๋ฅผ ์ค์น๋ฅผ ํ ์ ์๋ค.
๐ก ํด๊ฒฐ
Jenkins๋ฅผ ์ค์นํ ๋, Docker Socket๋ ๊ฐ์ด ์ค์นํด์ค๋ค!
1. ๊ธฐ์กด์ ์ด๋ฏธ์ง๋ฅผ ์ง์ฐ๊ณ , ๋ค์ Jenkins๋ฅผ ์ค์นํ๋ค.
1) ๋์ปค์ ์์ผ์ Jenkins ์ปจํ ์ด๋์ ๋ง์ดํธ๋ฅผ ํ๋ค. (๋์ปค ๋ฐ๋ชฌ์ ์ ๊ทผํ ์ ์๊ฒ ๋๋ค.)
2) root ์ต์ ์ ์ค์ ์ค์น๋ฅผ ํ๋ค.
sudo mkdir /home/opendocs/jenkins
sudo docker run \
--name jenkins \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v /home/opendocs/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-u root \
jenkins/jenkins:lts
2. Jenkins ์์ Docker๋ฅผ ์ค์นํ๊ธฐ ์ํด์ Jenkins ์ปจํ ์ด๋์ ์ ์ํ๋ค.
docker exec -it jenkins /bin/bash
3. Jenkins ์์ Docker๋ฅผ ์ค์นํ๋ค.
## - Old Version Remove
apt-get remove docker docker-engine docker.io containerd runc
## - Setup Repo
apt-get update
apt-get install \\
ca-certificates \\
curl \\
gnupg \\
lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL <https://download.docker.com/linux/debian/gpg> | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \\
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] <https://download.docker.com/linux/debian> \\
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
## - Install Docker Engine
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
์ค๋ ํ๋ฃจ ์ด๊ฒ ๋๋ฌธ์ ๋ฌด์ํ ์ฝ์ง์ ํด์ ์๊ฐ์ ๋ ๋ ธ๋ค.
๊ทธ๋๋ ๋๋ถ์ ํ์คํ ์ ์ ๋์ปค ๊ฐ๋ ์ ์ดํดํ๊ณ , ๋์ปค ๋ช ๋ น์ด๋ ์น์ํด์ง๊ณ ์๋ ๊ฒ ๊ฐ๋ค๐ฅ
๐ ์ฐธ๊ณ
- [Setting | Docker] jenkins ์ค์น ๋ด๋ถ์์ docker ์คํ : https://blog.opendocs.co.kr/?p=704
- Docker in Jenkins in Docker : https://www.tiuweehan.com/blog/2020-09-10-docker-in-jenkins-in-docker/