ํ์ฌ ์งํํ๋ ํ๋ก์ ํธ์ ๋ฐฐํฌ ๋จ๊ณ์์ Docker์ Jenkins๋ฅผ ํ์ฉํด๋ณผ ์ ์๋ ๊ธฐํ๊ฐ ์๊ฒผ๋ค.
๋์ปค๋ ๋ญ๊ณ ์ ํจ์ค๋ ๋ญ์ง ์ฒ์์๋ ์์ํ์ง๋ง, ๋๋ฆ๋๋ก Local ํ๊ฒฝ์์ ์ด๊ฒ ์ ๊ฒ ํ ์คํธ ํ๋ฉด์ ์ ๋์ปค์ ์ ํจ์ค๋ฅผ ์ฐ๋์ง ์๋ ๋ฐฐํฌ์ ํธ๋ฆฌํจ์ ๋ํด ๊นจ๋ฌ์๋ ๊ณผ์ ์ ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค.
๋์ปค๋ ๋์ปค๋ง์ ๋ช ๋ น์ด๋ค์ด ์์ด์ ๋ฆฌ๋ ์ค๋ฅผ ์ฒ์ ์ ํ์ ๋ ์ฒ๋ผ ์ฅ๋ฒฝ์ด ๋์๋ณด์๋๋ฐ ํ๋ค๋ณด๋ฉด ๋ญ .. ์ญ์ ์ธ๊ฐ์ ์ ์์ ๋๋ฌผ์์ ์๊ฒ ๋๋ค..
๋์ปค๋ ์ด๋ฏธ์ง์ ์ปจํ ์ด๋๋ผ๋ ๊ฐ๋ ์ ํตํด ์๋ฒ๋ง๋ค ๋ฐ๋ณต์ ์ผ๋ก ์ธํ ํด์ค์ผํ๋ ์์ ๋ค์ ๋ ์ ์๋ค. ๋ง์ฝ was ์๋ฒ๊ฐ ๋ค์คํ ๋์ด์์๋ ๊ฐ was ์๋ฒ๋ง๋ค (์๋ฅผ ๋ค์ด) jdk๋ ๊น๊ณ shell ํ์ผ๋ ๋ง๋ค๊ณ log ํด๋๋ ๊ตฌ์ฑํ๊ณ ์ด๊ฒ ์ ๊ฒ ํด์ฃผ์ด์ผํ๋ ์์ ๋ค์ด ๋ง์๋ฐ ๋์ปค๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ฐ ๋ฐ๋ณต์ ์ธ ์์ ์ Dockerfile๋ก ์ด๋ฏธ์ง๋ผ๋ ๊ฒ์ ๋ง๋ค์ด OS๋ฅผ ํต์งธ๋ก ๋์๋ฒ๋ฆผ์ผ๋ก์จ ํด๊ฒฐ์ด ๋๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ๋์์ง OS๋ ์ปจํ ์ด๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์์ฆ ์ฑ์ฉ๊ณต๊ณ ์์ MSA๋ผ๋ ํค์๋๊ฐ ๋ง์ด ๋ณด์ด๋๋ฐ, MSA๋ ๊ฐ๋จํ ์ค๋ช
ํ๋ฉด ์๋น์ค๊ฐ์ ์์กด์ฑ์ ์์ ๊ณ ๊ฐ๊ฐ์ ๊ธฐ๋ฅ๋ค๋ก ์ชผ๊ฐ๋๋ ์ํคํ
์ฒ๋ฅผ ๋งํ๋ค.
Docker๊ฐ MSA์ ์ฉ๋๋ก๋ง ์ฐ์ด๋ ๊ฒ์ ์๋์ง๋ง, ์ปจํ
์ด๋๋ฅผ ํตํด ๊ฐ์ OS๋ฅผ ๋์ OS๊ฐ์ ๊ฒฉ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ง์ด ์ฐ์ด๋ ๊ฒ ์๋๊น ์ถ๋ค.
์ ํจ์ค๋ ๊น ์์ค๋ฅผ ์๋ ๋น๋, ๋ฐฐํฌํ๊ธฐ ์ํ ์ฉ๋๋ง์ ์๋๋ค.
ํฌ๊ด์ ์ผ๋ก ๋น๋, ํ
์คํธ, ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํ ํ ์ ์๋ CIํด์ด๊ณ ,
์น ๊ธฐ๋ฐ ์ฝ์๋ก ํธ๋ฆฌํ๊ฒ ์๋ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ถํ ์ ์๋ค.
๊น ์์ค๋ฅผ ๊ฐ์ ธ์์ ์๋ ๋น๋ํ๋ ๊ฒ์ ๊ทธ ์ผ๋ถ !
๋์ปค ๋ฐ์คํฌํ์์ WSL 2 installation is incomplete ์๋ฌ ๋ฐ์
์ด๊ฑฐํ๊ณ ์ปดํจํฐ ๊ป๋ค ์ผ์ผ๋จ
Jenkins ์ค์น ๋ฐ ์ ํ ์ฐธ๊ณ !
์ปจํ
์ด๋๋ฅผ ์ค์งํ๊ณ ๋ค์ ์์ํ๋ฉด ์ ํจ์ค์ ์ค์ ํ์ผ๋ค์ด ๋ฆฌ์
๋๊ธฐ ๋๋ฌธ์
์๋์ ๊ฐ์ด ๋ณผ๋ฅจ ์ค์ ์ ํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
$ docker pull jenkins/jenkins:lts
$ docker run -d -p 9090:8080 -v shared:/data/shared -v jenkins_home:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts
Caused: java.io.IOException: Cannot run program "mvn"
๊ทธ๋ ๋ค๋ฉด ์๋ ๋งํฌ ์ฐธ๊ณ
Jenkins ๋ด์ ์ธ์คํจ๋ฌ๋ฅผ ์ด์ฉํด์ Maven์ ์ค์นํด์ฃผ๋ฉด ๋๋ค.
https://midas123.tistory.com/230
https://4urdev.tistory.com/91
NodeJS๋ ์ค์นํด์ฃผ๋ฉด ํด๊ฒฐ
https://javaju.tistory.com/126
Volume์ ๋ฐ์ดํฐ ๊ณต์ ์ฉ ํด๋ Shared ๋ฅผ ์์ฑํ์ฌ
Jenkins์ War ํ์ผ์ Tomcat ์ปจํ
์ด๋์ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ
volume ์ ์ ์ฅ๊ณต๊ฐ : C:\Users\user\AppData\Local\Docker\wsl\data
๋์ปค๊ฐ ๊ด๋ฆฌํ๋ ํ์ผ ํ์ฅ์๋ก ๋ฐ์ดํฐ๊ฐ ๊ด๋ฆฌ๋๊ณ ์๋ค. (vhdx : ์๋์ฐ์์ ๊ฐ์ํ๋ ๋๋ผ์ด๋ธ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ํ์ฅ์ )
# jenkins pull
docker pull jenkins/jenkins:lts
# jenkins run
docker run -d -p 9090:8080 -v shared:/data/shared -v jenkins_home:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts
# jenkins shell
echo 'REMOVE shared data / COPY shared data war'
mkdir -p /data/shared
rm -rf /data/shared/*
cp /var/jenkins_home/workspace/ํ๋ก์ ํธ๋ช
/target/ํ๋ก์ ํธ๋ช
-0.0.1-SNAPSHOT.war /data/shared/ํ๋ก์ ํธ๋ช
.war
# tomcat run
docker run --rm -d -p 8080:8080 -v shared:/usr/local/tomcat/webapps --name ํ๋ก์ ํธ๋ช
_tomcat tomcat:9.0
Local์์๋ ์์ ๊ฐ์ด ๊ฐ๋จํ๊ฒ ํ ์คํธ๋ฅผ ํ์ง๋ง, ๊ฐ๋ฐ ์๋ฒ์์ ํ ์คํธ ํ ๋๋ docker compose, SSH ํ๋ฌ๊ทธ์ธ์ ์ด์ฉํด์ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ
์ค์ ์ด์์ ๋ ๊ตฌ์กฐ๊ฐ ๋ง์ด ๋ฐ๋์๋๋ฐ, ์ ์ ์์ด ์ค๊ณํ๊ณ ์ด๋ฏธ์ง ๋ง๋ค๊ณ ๋์ฐ๊ณ ํ๋ค๋ณด๋ ๋์๋ ๊ฒ์ .. ์ฌ์ค ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ ์ ์ธ ์ค ๋ชฐ๋๋๋ฐ Docker + Linux ๋ช ๋ น์ด ๋ค๋ฃจ๋๊ฒ ์ข ์ต์ํด์ก๋ค๋ ๊ฒ?
๊ทธ๋ฆฌ๊ณ ๋, Dockerfile ๋๋ฑ ๋ง๋ค๊ณ ์ด๋ฏธ์ง ๋น๋, ์ปจํ
์ด๋ ๋ฐ ํ๋ค๊ณ ์ฝ๊ฒ ๋๋๋๊ฒ ์๋๊ณ ์ฌ๋ฌ๊ฐ์ง ์ด์๋ ๋ง์ด ๊ฒช์ด์ ๊ณ ์์ ํ๋ค.
์ ํจ์ค์์ ๋น๋๋ฅผ ํ๋ค๊ฐ ์๋ฒ ์์ฒด๊ฐ ์ฃฝ๋๋ค๋์ง.. ์ด ๋ฌธ์ ๋ ์ ํจ์ค JVM ๋ฉ๋ชจ๋ฆฌ ์ค์ ์ ํด์ฃผ์ด์ ํด๊ฒฐ ํ์๊ณ , ์ด ์ธ์ ์๋ ๋ฐฐํฌ์ ๊ณ ๋ คํด์ผ ํ๋ ์ํฉ๋ค์ด ๋๋ฌด ๋ง์์ Shell ํ์ผ๋ ๋ง์ด ๋ง๋ค์๋ ๊ฒ ๊ฐ๋ค.
ํด ..
๊ทธ๋๋ ๊ณผ์ ๋ง ์ ๋ฌธ์ํ ํด๋๋ฉด ๋ค์คํ๋๋๋ผ๋ ํธ๋ฆฌํ๊ฒ ์์
ํ ์ ์์๋ ๊ฒ ๊ฐ๋ค. ์์ฐ๋ ๊ฒ๋ณด๋ค 2358938501859189๋ฐฐ ๋์์!