[๊ฐ€์ƒํ™” - Container] Docker๋ฅผ ์ด์šฉํ•œ Jenkins ์„ค์น˜

2023. 7. 8. 14:42ใ†System ์ž‘์—…์‹ค/DevOps

728x90
๋ฐ˜์‘ํ˜•

 




 

 

์  ํ‚จ์Šค ๋งˆ์Šคํ„ฐ

COUPANG

www.coupang.com

 

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

 

 

๐Ÿš€ Docker๋ฅผ ์ด์šฉํ•œ Jenkins ์„ค์น˜

    ๐Ÿ”ฝ Ubuntu 22.04.05 LTS Server

        ๐Ÿ“ฆ Jenkins ์„ค์น˜

 

์ตœ์ดˆ Docker Hub๋ฅผ ํ†ตํ•ด Jenkins Image๋ฅผ ๋ฐ›์•„์ฃผ๋„๋ก ํ• ๊ฒŒ์š”.

docker pull jenkins/jenkins:lts


๊ทธ๋Ÿฐ ๋’ค Image๋ฅผ ์ด์šฉํ•ด์„œ Docker Cotainer๋ฅผ ์ ์žฌํ•ด ๋ณผ๊ฒŒ์š”.

์ฃผ๋‹ˆ๋Š” Shell Script๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฐจํ›„์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ๋ณผ๊ฒŒ์š”.

vim {Shell Script File Name}.sh

728x90

 ์ฃผ๋‹ˆ๋Š” ์œ„์™€ ๊ฐ™์ด Docker ์‹คํ–‰ ๋ช…๋ น์–ด๋ฅผ Shell Script๋กœ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.

-d๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ž‘๋™ํ•˜๋ผ๋Š” ์˜๋ฏธ

-p๋Š” Port Mapping์œผ๋กœ Docker Host Port์™€ Docker ๋‚ด๋ถ€ Port๋ฅผ Mapping

-v๋Š” Jenkins Container ์•ˆ์— Directory /var/jenkins_home์„ Host Directory /data/docker_data/mapping/giggal-jenkins์™€ ์—ฐ๊ฒฐํ•˜๋ผ๋Š” ์˜๋ฏธ์ธ๋ฐ, ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ์ด์œ ๋Š” Container ๋‚ด๋ถ€์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ , Host OS์—์„œ ๊ฐ„ํŽธํ•˜๊ฒŒ File ๋“ฑ์„ ๋„ฃ๊ณ , ๋นผ๊ณ  ํ•˜๊ธฐ ์œ„ํ•จ์ด์—์š”.

 

chmod -R {๊ถŒํ•œ ์„ค์ •} {File Name}

 


๊ทธ๋Ÿฐ ๋’ค ํ•ด๋‹น Shell Script์˜ ๊ถŒํ•œ์„ ์กฐ์ •ํ•ด ์ฃผ์—ˆ์–ด์š”.


./giggal_jenkins_docker.sh

 

 

docker ps -a

 



์œ„์™€ ๊ฐ™์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด Docker Container๊ฐ€ ์ ์žฌ๋˜๊ณ , ๊ธฐ๋™๋œ๋‹ต๋‹ˆ๋‹ค.




๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด Docker Host Server IP์™€ Mappingํ•œ Port ๋ฒˆํ˜ธ๋ฅผ ์จ์ฃผ๋ฉด ์ด๋ ‡๊ฒŒ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

 

 

 

        ๐Ÿ“ฆ Jenkins ์ดˆ๊ธฐ ๊ตฌ์„ฑ

์œ„์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค๋ฉด ์ดˆ๊ธฐ ์•”ํ˜ธ๊ฐ’์„ ๋„ฃ์–ด์ค˜์•ผ ํ•ด์š”.

docker logs {Container Name}

๋ฐ˜์‘ํ˜•


์œ„์™€ ๊ฐ™์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ์•„๋ž˜์ชฝ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•ด ๋‘” ๊ฒƒ์ฒ˜๋Ÿผ ์•”ํ˜ธ๊ฐ’์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ด๊ฑธ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.



๊ทธ๋Ÿฐ ๋’ค Continue๋ฅผ ๋ˆŒ๋Ÿฌ ๋„˜์–ด๊ฐˆ๊ฒŒ์š”.




์ด ๊ณณ์—์„œ๋Š” Install suggested plugins๋ฅผ ๋ˆŒ๋Ÿฌ ๊ถŒํ•œ Plugin ๋“ค์„ ๋ชจ๋‘ ์„ค์น˜ํ•ด ์ฃผ๋„๋ก ํ• ๊ฒŒ์š”.

 

 


Plugin ์„ค์น˜๊ฐ€ ๋ชจ๋‘ ๋๋‚˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ณ , Save and Continue๋ฅผ ๋ˆŒ๋Ÿฌ ์„ค์ •์„ ๋งˆ๋ฌด๋ฆฌ ํ•ด ์ค๋‹ˆ๋‹ค.


 

 


๋งˆ์ง€๋ง‰์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ ‘์†ํ•  Jenkins URL์„ ์„ค์ •ํ•ด ์ฃผ๊ณ , Save and Finish๋ฅผ ๋ˆŒ๋Ÿฌ์ค„๊ฒŒ์š”.


 

 

 

์œ„์™€ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค๋ฉด ์„ค์ •์ด ์™„๋ฃŒ๋œ ๊ฒƒ์ด๊ณ , Start using Jenkins๋ฅผ ๋ˆŒ๋Ÿฌ Jenkins๋ฅผ ๋งˆ๊ตฌ๋งˆ๊ตฌ ๊ฐ€์ง€๊ณ  ๋†€๋ฉด ๋œ๋‹ต๋‹ˆ๋‹ค.

 

 

 

 

 

 

    ๐Ÿ”ฝ Jenkins ์ดˆ๊ธฐ ๊ตฌ์„ฑ

        ๐Ÿ“ฆ Gradle ์„ค์น˜

์ฃผ๋‹ˆ๋Š” ์  ํ‚จ์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฐํฌ๋ฅผ ํ•  ๋•Œ, Java + Spring Boot (Gradle) API๋ฅผ ๋ฐฐํฌํ•ด ๋ณด๋ ค๊ณ  ํ•ด์š”.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์  ํ‚จ์Šค์— Gradle์„ ์„ค์น˜ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ Maven์„ ์‚ฌ์šฉํ•  ๊ณ„ํš์ด์‹œ๋ผ๋ฉด? ์•„๋ž˜๋กœ ๋” ๋‚ด๋ ค๊ฐ€์‹œ๋ฉด ๋งŒ๋‚˜๋ณด์‹ค ์ˆ˜ ์žˆ์–ด์š”.

apt-get install gradle


์ฃผ๋‹ˆ์ฒ˜๋Ÿผ ๋„์ปค๋ฅผ ์ด์šฉํ•˜์˜€๋‹ค๋ฉด ์  ํ‚จ์Šค ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ง„ํ–‰ํ•ด์•ผ ํ•ด์š”.


gradle --version


์ •์ƒ์ ์œผ๋กœ Gradle์ด ์„ค์น˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์—ˆ์–ด์š”.



๊ทธ๋Ÿฐ ๋‹ค์Œ Jenkins Plugin ์ค‘ ์œ„ Plugin์ด ์„ค์น˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์—ˆ์–ด์š”.


Jenkins ๊ด€๋ฆฌ์—์„œ Global Tool... ๋กœ ๋“ค์–ด๊ฐˆ๊ฒŒ์š”.



Gradle์— ๋Œ€ํ•œ ์„ค์ •์ด ์•ˆ๋œ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”.



๋จผ์ € Project ๋‚ด์—์„œ Gradle Version์„ ํ™•์ธํ•ด ์ค„๊ฒŒ์š”.

์ฃผ๋‹ˆ๋Š” 7.5 Version์„ ์“ฐ๊ณ  ์žˆ์–ด์š”.




 

 

 

 

        ๐Ÿ“ฆ Maven ์„ค์น˜

Manage Jenkins -> Jenkins Plugins -> available(์„ค์น˜ ๊ฐ€๋Šฅ) -> maven

 

์œ„์™€ ๊ฐ™์ด maven Plugin์„ ์ฐพ์•„ ์„ค์น˜ํ•ด ์ฃผ๋„๋ก ํ• ๊ฒŒ์š”.





Manage Jenkins -> Global Tool Configuration

 


ํ•ด๋‹น Plugin์ด ์„ค์น˜๊ฐ€ ์™„๋ฃŒ ๋˜์—ˆ๋‹ค๋ฉด Global Tool Configuration์— Maven ์ชฝ์œผ๋กœ ์ด๋™์„ ํ•ด ์ฃผ์„ธ์š”.



 

Add Maven์„ ๋ˆ„๋ฅด๋ฉด ์œ„์™€ ๊ฐ™์ด Maven์„ ์„ค์น˜ํ•˜๊ณ , ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋‚˜์™€์š”.

Install automatically๋ฅผ ๋ˆ„๋ฅด๋ฉด Jenkins Server์— maven์„ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•ด ์ค„ ๊ฑฐ์—์š”.


mvn --version


Jenkins Container์—์„œ ์„ค์น˜ ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด๊ธฐ ์œ„ํ•ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์—ˆ๋”๋‹ˆ
์—ญ์‹œ ์„ค์น˜๊ฐ€ ๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”.




์ฃผ๋‹ˆ๋Š” ์ตœ์‹  ๋ฒ„์ „๋ณด๋‹ค ํ•œ๋‹จ๊ณ„ ์•„๋ž˜ Version์ธ 3.8.5 Version์„ ์„ค์น˜ํ•ด ์ฃผ๋„๋ก ํ• ๊ฒŒ์š”.

๋งจ ๋ฐ‘์— Apply๋ฅผ ๋ˆ„๋ฅด๊ณ , save๋ฅผ ๋ˆ„๋ฅธ ๋’ค ํ•ด๋‹น ํ™”๋ฉด์„ ๋‚˜์™€์ค๋‹ˆ๋‹ค.

 

 


์ด๋ฒˆ ๊ธ€์€ ์—ฌ๊ธฐ์„œ ๋งˆ๋ฌด๋ฆฌ ํ•˜๋„๋ก ํ• ๊ฒŒ์š”!

 

 

 

 

์  ํ‚จ์Šค ๋งˆ์Šคํ„ฐ

COUPANG

www.coupang.com

 

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•