๐ŸšฆDevOps/๐Ÿณ Docker

Ubuntu์— Jenkins Docker ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์ถ•ํ•˜๊ธฐ

๋ฏธ์ธ์ฃผ 2023. 4. 3. 18:44

์„ค์น˜ ํ™˜๊ฒฝ

  • NHN Cloud
  • Ubuntu 20.04
  • Docker 23.0.1
  • Jenkins ๊ณต์‹ ์ด๋ฏธ์ง€



Workflow

  1. Ubuntu ์ธ์Šคํ„ด์Šค์— Docker ์„ค์น˜
  2. Jenkins ์ปจํ…Œ์ด๋„ˆ ์„ค์น˜
  3. NHN Cloud ๋ณด์•ˆ๊ทธ๋ฃน์— 8080 ์ˆ˜์‹  ํฌํŠธ ์ถ”๊ฐ€
  4. public IP:8080 ์œผ๋กœ Jenkins ์ ‘์†
  5. Jenkins ์„ค์ •
    • ๊ด€๋ฆฌ์ž ํŒจ์Šค์›Œ๋“œ ๋“ฑ๋ก
    • ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜
    • ์œ ์ € ์„ค์ •
    • Jenkins ์ ‘์† URL ์„ค์ •
  6. Jenkins ์›น ์ ‘์†

 

1. Ubuntu ์ธ์Šคํ„ด์Šค์— Docker ์„ค์น˜

์•„๋ž˜ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์„ธ์š”!

[๐Ÿšฆ ์ธํ”„๋ผ/๐Ÿณ Docker] - Ubuntu์— Docker ์„ค์น˜ํ•˜๊ธฐ

 

Ubuntu์— Docker ์„ค์น˜ํ•˜๊ธฐ

์„ค์น˜ ํ™˜๊ฒฝ NHN Cloud Ubuntu 20.04 Docker 23.0.1 Ubuntu ์ธ์Šคํ„ด์Šค์— Docker ์„ค์น˜ ๐Ÿณ Docker Docs ์ฐธ๊ณ  1. apt package index ์—…๋ฐ์ดํŠธ ๋ฐ apt๊ฐ€ HTTPS๋ฅผ ํ†ตํ•ด ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. sudo apt-get upd

myminju.tistory.com

 

2. Jenkins ์ปจํ…Œ์ด๋„ˆ ์„ค์น˜

sudo docker run -d --name jenkins -p 8080:8080 jenkins/jenkins
  • -d: ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐ๋ชฌ์œผ๋กœ ๋„์šด๋‹ค.
  • --name: ์ปจํ…Œ์ด๋„ˆ์˜ ์ด๋ฆ„์„ jenkins๋กœ ์„ค์ •ํ•œ๋‹ค
  • -p 8080:8080: ์ปจํ…Œ์ด๋„ˆ์˜ ์™ธ๋ถ€์™€ ํ†ต์‹ ํ•  ํฌํŠธ(์•ž์˜ ๊ฐ’)๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•  ํฌํŠธ(๋’ค์˜ ๊ฐ’)๋ฅผ ํฌ์›Œ๋”ฉํ•ด์ค€๋‹ค.

 

3. NHN Cloud ๋ณด์•ˆ๊ทธ๋ฃน์— 8080 ์ˆ˜์‹  ํฌํŠธ ์ถ”๊ฐ€

Jenkins๋ฅผ 8080 ํฌํŠธ๋กœ ์„ค์น˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์•ˆ๊ทธ๋ฃน์— 8080 ํฌํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์—ด์–ด์ค๋‹ˆ๋‹ค.

4. {public IP}:8080 ์œผ๋กœ Jenkins ์ ‘์†

์•ž์˜ ๊ณผ์ •์„ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ–ˆ๋‹ค๋ฉด ์  ํ‚จ์Šค ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์  ํ‚จ์Šค ์›น์— ์ ‘๊ทผํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์  ํ‚จ์Šค์— ์ ‘๊ทผํ•˜๋ ค๋ฉด {public IP}:8080 ์ฃผ์†Œ๋ฅผ ์›น์— ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์ ‘์†ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œน๋‹ˆ๋‹ค.

 

5. Jenkins ์„ค์ •

  • ํŒจ์Šค์›Œ๋“œ ๋“ฑ๋ก

์ดˆ๊ธฐ ์ ‘์†์„ ์œ„ํ•ด ๊ด€๋ฆฌ์ž ํŒจ์Šค์›Œ๋“œ ๋“ฑ๋ก ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ํ‚ค๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์  ํ‚จ์Šค๊ฐ€ ์„ค์น˜๋œ ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•ด ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

// jenkins ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†
$ sudo docker exec -it jenkins bash
// ์ดˆ๊ธฐ ๊ด€๋ฆฌ์ž ํ‚ค ํ™•์ธ
$ cat /var/jenkins_home/secrets/initialAdminPassword

 

  • ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜

ํ‚ค๋ฅผ ์ž˜ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์  ํ‚จ์Šค ์ดˆ๊ธฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.
์ถ”์ฒœ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

 

ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์ด ํ•˜๋‚˜์”ฉ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

 

  • ์œ ์ € ์„ค์ •

ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜๊ฐ€ ๋๋‚ฌ๋‹ค๋ฉด ์œ ์ € ์„ค์ •์„ ํ•ฉ๋‹ˆ๋‹ค.

 

  • Jenkins ์ ‘์† URL ์„ค์ •

์  ํ‚จ์Šค์— ์ ‘์†ํ•  ๋•Œ ์‚ฌ์šฉํ•  URL ์„ค์ •์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์„ค์ • public IP:8080์œผ๋กœ ์œ ์ง€ํ•˜๊ณ  ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

 

  • ์™„๋ฃŒ

์  ํ‚จ์Šค์˜ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

 

6. Jenkins ์›น ์ ‘์†

์„ค์ •ํ•œ URL์™€ ์œ ์ € ์ •๋ณด๋กœ ์ ‘์†ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.
GUI ํ™”๋ฉด์„ ํ†ตํ•ด ์  ํ‚จ์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.