๊น๋ฉ repository์์ ํน์ ๋ธ๋์น์ push์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ์ฌ ๋น๋์ ๋ฐฐํฌ๋ฅผ ์งํํ๋ CI/CD ์ ์ฉ!
1. Docker๋ก jenkins ์ค์นํ๊ณ ์คํ
jenkins ์ด๋ฏธ์ง๋ฅผ pull ๋ฐ๋๋ค.
sudo docker pull jenkins/jenkins:lts
๋ค์ด๋ฐ์ ์ด๋ฏธ์ง๋ฅผ ์คํ์์ผ์ค๋ค.
sudo docker run -d -p 8080:8080 -v /app/swim:/var/jenkins_home --name swim_jenkins -u root jenkins/jenkins:lts
- -d: background๋ก ์คํ
- -p: ํธ์คํธ์ 8080ํฌํธ์ ๋์ปค ๋คํธ์ํฌ ์์ 8080 ํฌํธ๋ฅผ ์ฐ๊ฒฐ
- -v: ํธ์คํธ์ ํ์ผ ์์คํ ๊ณผ ๋์ปค ์ปจํ ์ด๋ ํ์ผ์์คํ ์ฐ๊ฒฐ (/app/swim ๋๋ ํ ๋ฆฌ์ /var/jenkins_home์ ๋ง์ดํธ)
- --name: ๋์ปค ์ปจํ ์ด๋ ์ด๋ฆ ์ง์
- -u: ์ฌ์ฉ์๋ฅผ root๋ก ์ง์
jenkins ์ปจํ ์ด๋๊ฐ ์ ์์ ์ผ๋ก ์๋ํ๋์ง ํ์ธ
2. Jenkins ์ด๊ธฐ ์ธํ
http://{HOST_NAME}:8080 ์ผ๋ก ์ ๊ทผํ๋ฉด password๋ฅผ ์ ๋ ฅํ๋ ์ฐฝ์ด ๋์จ๋ค.
์ด ๋น๋ฐ๋ฒํธ๋ ๋์ปค์ ๋ก๊ทธ๋ฅผ ๋ณด๋ฉด ๋์์๋ค.
sudo docker logs swim_jenkins
๋ช ๋ น์ด๋ก jenkins ๋ก๊ทธ๋ฅผ ์ถ๋ ฅํ๋ฉด
์๋์ ๊ฐ์ด ๋น๋ฐ๋ฒํธ๊ฐ ํ์๋๋ค.
๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด jenkins ์ค์ ํ๋ฉด์ด ๋์จ๋ค.
์ฌ๊ธฐ์ ์ผ์ชฝ ํด๋ฆญ! ์ค์น๊ฐ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์.
3. Gitlab ์ฐ๋์ ์ํ ํ๋ฌ๊ทธ์ธ ์ค์น
Jenkins > Jenkins ๊ด๋ฆฌ > ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ๋ก ๋ค์ด๊ฐ๋ค.
์ค์น๊ฐ๋ฅ์ ํด๋ฆญํด Publish Over SSH
์ GitLab Plugin
์ ๊ฐ๊ฐ ์ค์นํ๋ค.
๋์ผํ ์ํ์์ ๋น๋๋ฅผ ์ํ Gradle Plugin
๊ณผ NodeJS Plugin
๋ ์ค์น ํด์ค๋ค.
4. Jenkins ์ค์
jenkins ๊ด๋ฆฌ > ์์คํ
์ค์
Publish Over SSH ์ค์
Key ํ์ผ ์ง์
๋จผ์ ์๋ฒ ์ ์์ ์ํ .pem ํ์ผ ์ ๋ณด๋ฅผ ๋ฃ๋๋ค.
๐ก key์ ๋ด์ฉ์ .pem ํ์ผ์ visual studio์ ๊ฐ์ ์๋ํฐ๋ก ์ด๋ฉด ์ป์ ์ ์๋ค.
SSH Servers ์ง์
์๋ SSH Server์๋ ์๋ฒ์ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ค.
- Name: ์๋ณํ๊ธฐ ์ํ ๊ฒ์ด๋ผ ์๋ฌด๋ ๊ฒ๋ ์ ๋ ฅํด๋ ์๊ด ์๋ค.
- HostName: ์๋ฒ์ ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ค.
- Username: ์๋ฒ์ ์ ์ํ username์ ์ ๋ ฅํ๋ค. (ubuntu)
Test Connection
์ ํด๋ฆญํ์ฌ ์ ๋์ํ๋์ง ๊ผญ ํ์ธํ์!
๊น๋ฉ ์ค์
- Connection name: ์ฐ๊ฒฐ ์ค์ ์ด๋ฆ
- Gitlab host URL: ๊น๋ฉ ์๋ฒ์ ํธ์คํธ URL(e.g. http://gitlab.mydomain.com)
- Credential: Gitlab ์ ๊ทผ์ ํ์ํ API ํ ํฐ ์ ๋ณด ( ์์ผ๋ฉด ์ค๋ฅธ์ชฝ์ Add๋ฅผ ๋๋ฌ์ ์ถ๊ฐํ์ ! )
- API Token: Gitlab์์ ๋ฐ๊ธ๋ฐ์ Access Token์ ๋ ฅ
- ID: ์๋ณ Id ( ์๋ฌด๋ ๊ฒ๋ ์ ๋ ฅ! )
- Description: ์ค๋ช ( ์๋ฌด๋ ๊ฒ๋ ์ ๋ ฅ! )
Test Connection
์ ํด๋ฆญํ์ฌ ์ ๋์ํ๋์ง ๊ผญ ํ์ธํ์!
Gradle ์ค์
jenkins ๊ด๋ฆฌ > Global Tool Configuraion
add Gradle ํด๋ฆญ ํ, ๋ฒ์ ์ ๋ง๋ gradle์ ์ ํ ๋ฐ ์ ์ฅ!
์ฌ๊ธฐ๊น์ง ์ค์ ๋...!
๋ณธ๊ฒฉ์ ์ธ Item ์๋ ๋น๋ / ๋ฐฐํฌ ์ค์ ์ ์๋์์
https://doteloper.tistory.com/82
[Jenkins - Gitlab] Jenkins๋ก SpringBoot + React ์๋ CI/CD ๊ตฌ์ถํ๊ธฐ (2) Gitlab ๋ธ๋์น์ ์ฐ๊ฒฐ๋ ์๋ ๋น๋ / ๋ฐฐ
์ด์ ๊ธ: (1) jenkins ์ค์ https://doteloper.tistory.com/81 [Jenkins - Gitlab] Jenkins๋ก SpringBoot + React ์๋ CI/CD ๊ตฌ์ถํ๊ธฐ (1) jenkins ์ค์ ๊น๋ฉ repository์์ ํน์ ๋ธ๋์น์ push์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ..
doteloper.tistory.com