Docker (도컀)/μ„œλ²„κ΅¬μΆ•(SSL)

7. μ„œλ²„ μžλ™ 배포 (2) μ„œλ²„μ— μžλ™ 배포λ₯Ό μœ„ν•œ runner μ„€μΉ˜

🐾자 멍멍쌀 (λ°€ ν•˜λŠ˜ μž‘μ€ β˜…) 2022. 11. 1. 20:53
728x90
λ°˜μ‘ν˜•

πŸ”΄ μ•žμ˜ κΈ€μ—μ„œ μž‘μ„±ν•œ github actionκ³Ό μ—°λ™λ˜μ–΄μ§€λŠ” runnerλ₯Ό μ„œλ²„μ— μ„€μΉ˜ν•˜λŠ” 방법을 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

 

1. github ν™ˆνŽ˜μ΄μ§€μ—μ„œμ˜ μž‘μ—…

κ°€. λ¨Όμ €, github의 ν˜„μž¬ μž‘μ—… repository μ—μ„œ Settings - Actions - Runners λ₯Ό 선택해 μ€€ ν›„, New self-hosted runner λ²„νŠΌμ„ λˆŒλŸ¬μ€λ‹ˆλ‹€.

λ‚˜. ν˜„μž¬ μ„€λͺ…ν•˜λŠ” μ„œλ²„λŠ” Ubuntu λ¦¬λˆ…μŠ€ μ„œλ²„μ΄λ―€λ‘œ  Create self-hosted runner μ°½μ—μ„œ  Linuxλ₯Ό μ„ νƒν•΄ μ€λ‹ˆλ‹€.

βœ… 이제 μœ„μ— μžˆλŠ” λΉ¨κ°„ 점선에 μžˆλŠ” λ‚΄μš©λ“€μ„ ν•˜λ‚˜μ”© μ„œλ²„μ—μ„œ μ‹€ν–‰ν•΄ μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‹ˆ, μœ„ github μ°½κ³Ό μ„œλ²„ ssh 접속창을 같이 μ—΄μ–΄λ‘μ‹œκ³  μž‘μ—…ν•˜λ©΄ νŽΈν•  κ²ƒμž…λ‹ˆλ‹€.

 

2. μ„œλ²„μ—μ„œμ˜ μž‘μ—…

πŸ”΄πŸ”΄ μ•„λž˜μ˜ λͺ¨λ“  μž‘μ—…μ€ λ°˜λ“œμ‹œ μ‚¬μš©μž κΆŒν•œμœΌλ‘œ μž‘μ—…ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

κ°€. μœ„ λͺ…령을 μ‹€ν–‰ν•˜κΈ° 전에, μ„œλ²„μ—μ„œ μž‘μ—…ν•  폴더λ₯Ό 생성할 κ²ƒμž…λ‹ˆλ‹€. μ €λŠ” '/home/(λ³ΈμΈμ˜κ³„μ •μ΄λ¦„)' 밑에 www λΌλŠ” 디렉토리λ₯Ό λ§Œλ“  ν›„ κ·Έ μ•ˆμ—μ„œ μž‘μ—…μ„ ν•  κ²ƒμž…λ‹ˆλ‹€. (μ•„λž˜ μ˜ˆμ‹œμ˜ 경우 ν˜„μž¬μ˜ λ””λ ‰ν† λ¦¬λŠ” /home/mungkhs μž…λ‹ˆλ‹€.)

mkdir www && cd www

 

λ‚˜. 이제 github ν™ˆνŽ˜μ΄μ§€μ— μžˆλŠ” Download λΆ€λΆ„μ˜ λͺ…령쀄을 ν•˜λ‚˜μ”© μž…λ ₯ν•΄ μ€λ‹ˆλ‹€.

βœ… μœ„ ν•΄λ‹Ή λͺ…령쀄을 ν΄λ¦­ν•˜λ©΄ μ €μ ˆλ‘œ 볡사가 λ©λ‹ˆλ‹€.

βœ… μœ„ λͺ…λ Ή 쀑 μ„Έλ²ˆμ§Έ Optional : Validate the hash λΆ€λΆ„μ˜ echo ~~ λͺ…령은 μž…λ ₯ν•˜μ§€ μ•Šμ•„λ„ λ©λ‹ˆλ‹€.

mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-x64-2.298.2.tar.gz -L https://github.com/actions/runner/releases/download/v2.298.2/actions-runner-linux-x64-2.298.2.tar.gz
tar xzf ./actions-runner-linux-x64-2.298.2.tar.gz

 

λ‹€. github의 Configure 뢀뢄은 μ•„λž˜ λ‚΄μš©μ„ μ°Έκ³ ν•˜λ©° μž…λ ₯ν•΄ μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.

πŸ”΄ μœ„ 첫번째 λͺ…λ Ήμ–΄ 쀑 맨 λ’€ --token 뢀뢄은 ν˜„μž¬ repository와 μ—°κ²°λœ κ³ μœ  ν‚€μž…λ‹ˆλ‹€. 

πŸ”΄ λ‘λ²ˆμ§Έ λͺ…λ Ή ./run.sh은 λ‹€λ₯΄κ²Œ μž…λ ₯ν•΄ μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.

 

라. μ•„λž˜ μ½”λ“œλ₯Ό githubμ—μ„œ λ³΅μ‚¬ν•˜μ—¬ μ„œλ²„μ— μž…λ ₯ν•©λ‹ˆλ‹€. 그럼 μ•„λž˜μ™€ 같은 화면이 보일 κ²ƒμž…λ‹ˆλ‹€. μš°μ„  3κ°€μ§€λ₯Ό λ¬Όμ–΄λ³΄λŠ”λ° ν˜„μž¬λŠ” κ·Έλƒ₯ 3κ°€μ§€ λͺ¨λ‘ Enterλ₯Ό μ³μ„œ κΈ°λ³Έκ°’μœΌλ‘œ λ„˜μ–΄κ°€λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

마. λ§ˆμ§€λ§‰ work folderλ₯Ό μž…λ ₯ν•˜λΌκ³  ν•©λ‹ˆλ‹€. 기본으둜 Enter λ₯Ό κ·Έλƒ₯ 치면 λ‚˜μ€‘μ— λ‚΄κ°€ 올린 μ†ŒμŠ€κ°€

/home/내계정/www/action-runner/_work 디렉토리 λ°‘μœΌλ‘œ μ €μž₯이 λ©λ‹ˆλ‹€. 

κ·Έλž˜μ„œ 저같은 κ²½μš°λŠ” /home/mungkhs/www 라고 μž…λ ₯ν•˜μ—¬ μ€λ‹ˆλ‹€.

 

λ°”. 이제 λ§ˆμ§€λ§‰μœΌλ‘œ runnerλ₯Ό μ‹€ν–‰μ‹œμΌœ μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. 그러기 μœ„ν•΄ githubμ—μ„œμ˜ λ§ˆμ§€λ§‰ λͺ…령어인 ./run.sh λ₯Ό μž…λ ₯해도 μž‘λ™μ΄ λ˜μ§€λ§Œ, 이럴 경우 sshμ°½μ—μ„œ λ‘œκ·Έμ•„μ›ƒ ν•  경우 runner도 쀑지가 λ˜λ²„λ¦½λ‹ˆλ‹€. 

λ”°λΌμ„œ, μ•„λž˜μ™€ 같이 μž…λ ₯을 해주도둝 ν•©λ‹ˆλ‹€.

sudo ./svc.sh install             #λΆ€νŒ…μ‹œ μžλ™ μ‹€ν–‰
sudo ./svc.sh start               #runner μ‹€ν–‰

 

사. 이제 μ„œλ²„μ— μ„€μΉ˜ν•œ Runnerκ°€ μž‘λ™ 쀑일 경우, github의 Runners 창에 μ•„λž˜μ™€ 같이 λ‚˜μ˜¬ κ²ƒμž…λ‹ˆλ‹€. 이후 λ‘œμ»¬μ—μ„œ μ†ŒμŠ€λ₯Ό μˆ˜μ •ν•œ 후에 pushλ₯Ό ν•˜λ©΄ github에 μ˜¬λΌκ°€λŠ” μ¦‰μ‹œ μ„œλ²„λ‘œλ„ μžλ™μœΌλ‘œ 전솑이 될 κ²ƒμž…λ‹ˆλ‹€.

πŸ”΄ λ‹€μŒ κ²Œμ‹œκΈ€μ—μ„œλŠ” μ‹€μ œ μ†ŒμŠ€ μˆ˜μ • ν›„ μ„œλ²„κΉŒμ§€ λ°”λ‘œ λ°°ν¬λ˜λŠ” 것을 확인할 것이며, λ°°ν¬μ‹œ 도컀 μ»¨ν…Œμ΄λ„ˆλ„ μžλ™ 생성이 λ˜λ„λ‘ κ΅¬ν˜„μ„ ν•΄ λ³Ό κ²ƒμž…λ‹ˆλ‹€.

 

3. runner μ‚­μ œ 방법

κ°€. μ•„λž˜ Runners μ°½μ—μ„œ 빨간색 뢀뢄을 λˆŒλŸ¬μ€λ‹ˆλ‹€.

 λ‚˜. μ•„λž˜ λΉ¨κ°„ 뢀뢄을 볡사 ν›„ μ„œλ²„μ— μž…λ ₯ν•˜μ—¬ μ‹€ν–‰ν•©λ‹ˆλ‹€. 단, μ„œλ²„μ˜ /home/본인계정/www/actions-runner 디렉토리 μ•ˆμ—μ„œ 싀행을 ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ§Œμ•½, μœ„μ™€ 같이 ν–ˆλŠ”λ°, μ•„λž˜μ™€ 같이 μ‚­μ œ μ‹€νŒ¨κ°€ λ‚˜μ˜€λŠ” κ²½μš°μ—λŠ” λ¨Όμ € sudo ./svc.sh uninstall λ₯Ό μ‹€ν–‰ν•˜μ„Έμš”.

 


🍺🍺 μž‘μ—…ν•œ λͺ¨λ“  μ†ŒμŠ€λŠ” μ•„λž˜ λ§ν¬μ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€. πŸΊπŸΊ

https://github.com/mmssem/progstudy

 

GitHub - mmssem/progstudy

Contribute to mmssem/progstudy development by creating an account on GitHub.

github.com


🍺 λͺ©μ°¨ 🍺(λ³΄μ‹œλ €λ©΄ μ•„λž˜ λ”보기 λ₯Ό λˆŒλŸ¬μ£Όμ„Έμš”.)
더보기

1. Dockerλ₯Ό μ‚¬λž‘ν•˜κ²Œ 된 이유 (Docker+Nginx_proxy+SSL+Github action)

2. Docker μ„€μΉ˜ (Docker+Nginx_proxy+SSL+Github action)

3. MobaXterm (Docker+Nginx_proxy+SSL+Github action)

4. 도컀λ₯Ό μ΄μš©ν•˜μ—¬ μ„œλ²„μ— vnstat μ„€μΉ˜ 및 μ‚­μ œν•˜κΈ°(Docker+Nginx_proxy+SSL+Github action)

5. λ‘œμ»¬μ— nginx(μ›Ήμ„œλ²„) μ„€μΉ˜ν•΄λ³΄κΈ° (Docker+Nginx_proxy+SSL+Github action)

6. μ„œλ²„ μžλ™ 배포 (1) 둜컬 => github (Docker+Nginx_proxy+SSL+Github action)

7. μ„œλ²„ μžλ™ 배포 (2) μ„œλ²„μ— μžλ™ 배포λ₯Ό μœ„ν•œ runner μ„€μΉ˜

8. μ„œλ²„ μžλ™ 배포 (3) 둜컬 μ†ŒμŠ€ -> git push -> github -> μ„œλ²„ μžλ™ 배포 확인

9. (tip) git Add, Commit, push ν•œλ²ˆμ— ν•˜κΈ°

10. μ„œλ²„ μžλ™ 배포 (4) λ°°ν¬μ‹œ μ„œλ²„μ—μ„œ docker-compose.yml μžλ™ μ‹€ν–‰

11. μ„œλ²„μ— vnstat μ„€μΉ˜ (docker-compose.yml 이용)

12. μ„œλ²„μ— 도컀 μ„€μΉ˜μ‹œ network μ„€μ • λ³€κ²½ 사항 ν™•μΈν•˜κΈ°

13. nginx + php + mysql + phpmyadmin μ„€μΉ˜ν•˜κΈ°

14. Nginx - Reverse Proxy, Load Balancing κΈ°λŠ₯ ν™œμš©

15. λ‘œμ»¬μ—μ„œ 아이피 λŒ€μ‹  도메인λͺ… μ‚¬μš©ν•˜κΈ°(hosts μˆ˜μ •)

16. httpsλ₯Ό μ“°κΈ° μœ„ν•΄ λ‘œμ»¬μ—μ„œ SSL ν…ŒμŠ€νŠΈ ν•˜κΈ° (with mkcert)

17. μ„œλ²„μ— SSL μ μš©ν•˜κΈ° (docker + Let's Encrypt + wildcard μΈμ¦μ„œ + Cloudflare)

18. μ™€μΌλ“œμΉ΄λ“œ μΈμ¦μ„œ μžλ™ κ°±μ‹ (docker + Let's Encrypt + wildcard μΈμ¦μ„œ + crontab)

 

 

728x90
λ°˜μ‘ν˜•