2023. 4. 19. 21:03ใ๐ AWS
1. ์๋ก
์๋ ํ์ธ์. ์ด๋ฒ์๋ AWS EC2์์ Jenkins Item์ FreeStyle ๋ฐฐํฌ์ ๋ํด์ ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํ๊ธฐ ์ํด ๊ธ์ ์์ฑ์ ํ์ต๋๋ค. ๋ฐฐํฌ๋ฅผ ํฌ๊ฒ 2๊ฐ๋ก ๋๋์ด Github๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ์๊ณผ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์ ๋ฆฌ๋ฅผ ํ๊ฒ ์ต๋๋ค.
ํน์ Jenkins์ ๋ํด์ ์ฒ์ ํ์ต์ ํ์ ๋ค๋ฉด ๊ธฐ์กด์ ์ ๋ฆฌํ Jenkins์ ๋ํด์ ํ๋ฒ ๋ณด์๋๊ฑธ ์ถ์ฒ์ ํฉ๋๋ค.
[ Jenkins ] Jenkins CI/CD ๋ฌด์์ธ๊ฐ?
1. ๊ธ์ ์์ฑํ๋ ์ด์ ์๋ ํ์ธ์. ์ด๋ฒ์๋ Jenkins๋ฅผ ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌ๋ฅผ ํ๋ ค๊ณ ํฉ๋๋ค. ์ฌ์ค Jenkins๋ฅผ ํ์ตํ ์ด์ ๋ ์ ์ ์ผ๋ก ์ทจ์ ์ ํ๊ธฐ ์ํด ์ฐ๋์ฌํญ์ ๋ณด๋ฉด Jenkins CI/CD ํ์ดํ๋ผ์ธ ์ฐ๋
pos04167.tistory.com
2. ๋ณธ๋ก
์ผ๋จ ํ๋์ ๊ฐ๋จํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ ๋ฐฐํฌ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค.
GitHub - KMGeon/DeployAWS: Jenkins CI/CD ์ฐ์ต & Git Squash Merge ์ฐ์ต
Jenkins CI/CD ์ฐ์ต & Git Squash Merge ์ฐ์ต. Contribute to KMGeon/DeployAWS development by creating an account on GitHub.
github.com
์ผ๋จ ์ค์ต์ ํ๊ธฐ ์ํด Dockerfile์ ๋ง๋ค๊ฒ ์ต๋๋ค.
FROM openjdk:11-jdk
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
AWS EC2์ ์ ์ํ๊ธฐ
[ AWS ] AWS๋ ์นํด์ง๊ธฐ-1 (AWS EC2 ๊ธฐ๋ณธ ๋ฐฐํฌ)
[ AWS ] ์ ๋ด๊ฐ ๋ฐฑ์๋์ธ๋ฐ AWS ํด๋ผ์ฐ๋๋ฅผ ๋ฐฐ์์ผ ํ๋๊ฐ? ๋ด๊ฐ ์ AWS๋ฅผ ๋ฐฐ์์ผ ํ๋๊ฐ? ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๋ฉด์ Spring์ผ๋ก ๊ฐ๋ฐ์ ํ๋ฉด ๋๋๋ฐ ์ ์ทจ์ ์ ํ๋ ค๋ฉด AWS๊ฐ ํ์์ฑ์ ๋ํด์ ์๊ฐ์ ํ๊ฒ
pos04167.tistory.com
[ AWS ] AWS๋ ์นํด์ง๊ธฐ -2 (์๊ฐ ์ค์ )
์๊ฐ ์ค์ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ์ฌ์ฉํ๊ณ ์๋ ์๊ฐ์ ๋ฏธ๊ตญ์ผ๋ก ์กํ์๋ค. ์ด๋ฌํ ์๊ฐ์ ์์ธ๋ก ๋ฐ๊พธ์ด์ผ ํ๋ค. timedatectl ์ผ๋จ aws์์ ์ ๊ณตํ๋ ์๊ฐ์ด ๋ช๊ฐ๊ฐ ์๋์ง ๋ฆฌ์คํธ๋ฅผ ํ์ธ์ ํด๋ณด์ timedatectl
pos04167.tistory.com
[ AWS ] AWS๋ ์นํด์ง๊ธฐ - 3 (Docker๋ฅผ ์ด์ฉํด์ ๋ฐฐํฌํ๊ธฐ)
[ AWS ] AWS๋ ์นํด์ง๊ธฐ-1 (AWS EC2 ๊ธฐ๋ณธ ๋ฐฐํฌ) [ AWS ] ์ ๋ด๊ฐ ๋ฐฑ์๋์ธ๋ฐ AWS ํด๋ผ์ฐ๋๋ฅผ ๋ฐฐ์์ผ ํ๋๊ฐ? ๋ด๊ฐ ์ AWS๋ฅผ ๋ฐฐ์์ผ ํ๋๊ฐ? ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๋ฉด์ Spring์ผ๋ก ๊ฐ๋ฐ์ ํ๋ฉด ๋๋๋ฐ ์ ์ทจ์ ์ ํ
pos04167.tistory.com
AWS EC2 ์ธ์คํด์ค ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ํด๊ฒฐ์ ์ํด SWAP ํ ๋น
sudo dd if=/dev/zero of=/swapfile bs=128M count=32
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
sudo vi /etc/fstab
--------------------
[ vi์ ํ๋จ์ ์ถ๊ฐ ]
/swapfile swap swap defaults 0 0
----------------------
## ์ฉ๋ ํ์ธ
free
์ด๋ ๊ฒ free๋ฅผ ์ ๋ ฅํ๋ฉด ์ ์์ ์ผ๋ก swap์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ์ด ๋์์ต๋๋ค.
AWS EC2(ubuntu 20.04)์ Docker๋ฅผ ์ค์นํ๊ธฐ
# ์ค๋๋ ๋ฒ์ ์ญ์
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
# repository ์ค์
sudo apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Docker์ Official GPG Key ๋ฅผ ๋ฑ๋ก
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# stable repository ๋ฅผ ๋ฑ๋ก
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Docker Engine ์ค์น
sudo apt-get -y install docker-ce docker-ce-cli containerd.io
# ์ค์น ์๋ฃ ํ์ธ, ๋ฒ์ ํ์ธ
docker --version
# /var/run/docker.sock ์ ๊ทผ ๊ถํ ํ์ฉ
sudo chmod 666 /var/run/docker.sock
# docker hub ๋ก๊ทธ์ธ id/pw ์
๋ ฅ
docker login
์ด๋ docker login์ docker hub์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ ์์ ์ผ๋ก ๋ก๊ทธ์ธ์ด ๋์๋ค๋ฉด Login Success๊ฐ ๋์์ ํ๊ฒ ๋ฉ๋๋ค.
์ดํ Jenkins docker๋ก ์ค์น๋ฅผ ํ๊ฒ ์ต๋๋ค.
Docker๋ฅผ ์ด์ฉํด์ Jenkins ์ค์นํ๊ธฐ
docker run \
--name jenkins-docker \
-p 8080:8080 -p 50000:50000 \
-v /home/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-u root \
-d \
jenkins/jenkins:lts
# jenkins ์ปจํ
์ด๋ ์ ์
docker exec -it [jenkins ์ปจํ
์ด๋ID] bin/bash
# jenkins ์ปจํ
์ด๋ log ํ์ธ
docker logs [jenkins ์ปจํ
์ด๋ID]
์ด๋ Jenkins ์ปจํ ์ด๋ ID๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ docker ps -a๋ฅผ ์ ๋ ฅํด์ ์์ด๋๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
AWS EC2 ์ธ๋ฐ์ด๋ ๊ท์น ์ถ๊ฐ
Jenkins์ ๊ธฐ๋ณธ์ ์ธ ํฌํธ๋ 8080์ ๋๋ค.
๊ทธ๋์ ์ ํฌ๋ 8080ํฌํธ๋ฅผ ํ์ฉ์ ํด์ผ์ง ์ ํจ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด ์ธ๋ฐ์ด๋ ๊ท์น์ ์ถ๊ฐ๋ฅผ ํ๊ฒ ์ต๋๋ค.
๋ฌด๋ฃ ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์ค - AWS ํ๋ฆฌ ํฐ์ด
Q: AWS ํ๋ฆฌ ํฐ์ด๋ ๋ฌด์์ ๋๊น? AWS ํ๋ฆฌ ํฐ์ด๋ ๊ณ ๊ฐ์๊ฒ ์๋น์ค๋ณ๋ก ์ง์ ๋ ํ๋ ๋ด์์ ๋ฌด๋ฃ๋ก AWS ์๋น์ค๋ฅผ ์ดํด๋ณด๊ณ ์ฌ์ฉํด ๋ณผ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ํ๋ฆฌ ํฐ์ด๋ 12๊ฐ์ ํ๋ฆฌ ํฐ์ด, ์
aws.amazon.com
1. aws์ ์ ์ํ์ฌ ec2์ ์ ์์ ํฉ๋๋ค.
2. ์ดํ ๋ณด์์ ํด๋ฆญํ์ฌ ๋ณด์ ๊ทธ๋ฃน์ ๋ฐ์ sg-xxxx์ ์ ์์ ํฉ๋๋ค.
3. ์ธ๋ฐ์ด๋ ๊ท์น ํธ์ง์ ํ์ฌ ๊ท์น ์ถ๊ฐ๋ฅผ ํตํด 8080 ํฌํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
Jenkins ์ ์ํ๊ธฐ
์ธ๋ฐ์ด๋ ๊ท์น์ ์ถ๊ฐํ๋ฉด { ํ๋ ฅ์ IP } : 8080 ์ฃผ์๋ฅผ ํตํ์ฌ Jenkins์ ์ ์์ด ๊ฐ๋ฅํฉ๋๋ค.
์ด๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ์ ํด์ผ๋๋๋ฐ ์ด ๊ฒฝ์ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ์ ํด์ผ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฉด docker์ ๋ช ๋ น์ด๋ฅผ ํตํด ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์๋ณด๊ฒ ์ต๋๋ค.
# docker ์ด๋ฏธ์ง๋ก ๋ฐฐํฌ์ ํ์ธ
docker exec jenkins-docker cat /var/jenkins_home/secrets/initialAdminPassword
์ดํ ํจ์ค์๋ ์ ๋ ฅํ๋ฉด Jenkins Plugins Installํ๋ฉด์ด ๋์ต๋๋ค. ์ด๋ Install suggested Plugins๋ฅผ ์ ๋ ฅ์ ํฉ๋๋ค.
๋ง์ฝ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ์ ํ์ผ๋ฉด ๋ค์์๋ ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ๋์ต๋๋ค.
Public-over-ssh ์ค์นํ๊ธฐ
์ฌ๊ธฐ๊น์ง ์ฑ๊ณต์ ํ๋ค๋ฉด public-over-ssh๋ฅผ ์๋์ผ๋ก ์ค์น๋ฅผ ํด์ผ๋ฉ๋๋ค.
Index of /plugins/publish-over-ssh/latest
archives.jenkins-ci.org
์ดํ Jenkins๊ด๋ฆฌ - Plugin Manager - Advanced settings - Deploy Plugin์ ์ค์นํ ํ์ผ์ ์ถ๊ฐํ์ฌ submit์ ํฉ๋๋ค.
์ดํ ์ ์ถ์ ๋๋ฅด๊ฒ ๋๋ฉด public-over-ssh๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋น๋ก ๋์ต๋๋ค. ์ด๋ ์๋ฃ๊ฐ ๋๋ฉด
๋ค์ Jenkins ๊ด๋ฆฌ๋ฅผ ์ฐพ์ผ๋ฉด ๋ฉ๋๋ค.
(์ค์) - ๊ณต๊ฐํค & ๊ฐ์ธํค ์์ฑํ์ฌ ์ฐ๊ฒฐํ๊ธฐ
๊ธฐ์กด์ Dashboard > Jenkins ๊ด๋ฆฌ > Configure System์ ๋ค์ด๊ฐ๋ฉด publish over SSH๊ฐ ์์ต๋๋ค.
์ ๋ ๊ธฐ์กด์ ์ธํ ์ ํ์๊ธฐ ๋๋ฌธ์ ๋์์ ๊ดํด์๋ง ์ค๋ช ์ ํ๊ฒ ์ต๋๋ค.
์ผ๋จ ์ด ๋ถ๋ถ์ด ์ ์ผ ์ค์ํฉ๋๋ค. ์ ํจ์ค์ ๊ฐ์ธํค์ ๊ณต๊ฐํค๋ฅผ ์์ฑ์ ํด์ผ๋๋๋ฐ
์ผ๋จ ์ค๋ช ์ ํ๊ธฐ ์ด์ ์ ์ ๊น ์ค๋ช ์ ํ๊ฒ ์ต๋๋ค.
์ ํฌ๋ EC2๋ฅผ 2๊ฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ๋๋ Jenkins ์ธ์คํด์ค์ Work ์ธ์คํด์ค 2๊ฐ๊ฐ ์์ต๋๋ค. ์ ํฌ๋ ssh๋ฅผ ํตํด ์ค์ ์ ํด์ผ์ง ๊ฐ๋ฅํฉ๋๋ค.
SSH(Secure Shell)
ssh๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํ ํ๋กํ ์ฝ์ ๋๋ค. ์ํธํ(RSA)๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์กํ๋ฉฐ, ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ๊ธฐ๋ฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค. SSH๋ฅผ ์ฌ์ฉํ๋ฉด ์ธํฐ๋ท์ ํตํด ์ ์ก๋๋ ๋์ ์ค๊ฐ์์ ํ์ทจ๋๊ฑฐ๋ ๋ณ๊ฒฝ ๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์ ํฌ๋ EC2 ์ธ์คํด์ค์ ์ ์ํ๋ฉด ์ํธํ๋ ํฐ๋์ ํตํด ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํด ์ค์ ์ ํด์ผ๋ฉ๋๋ค. ์ ํฌ๋ SSH์ฐ๊ฒฐ์ ํ์ฌ Jenkins ์ธ์คํด์ค์์ docker hub๋ฅผ ํตํด ๋ง๋ ์ด๋ฏธ์ง๋ฅผ Work ์ธ์คํด์ค์ ๋ฐฐํฌํ๋ ํํ๋ก ๋ฐฐํฌ๋ฅผ ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ํตํด ๊ฐ์ธํค์ ๊ณต๊ฐํค๋ฅผ ์์ฑํ๋ค. ์ด๋ฅผ work ์ธ์คํด์ค์ ssh-server์ ๋ฑ๋ก์ ํด์ผ๋๋ค.
ssh-keygen -t rsa -b 4096 -m PEM
๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ๋์๋ค๋ฉด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ์ด ๋์์ต๋๋ค.
์ดํ ๊ฐ์ธํค๋ฅผ ํ์ธ์ ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅ์ ํฉ๋๋ค.
cd /root/.ssh
cat id_rsa.pub
Jenkins ๊ณต๊ฐํค Work ์ธ์คํด์ค์ ๋ฑ๋กํ๊ธฐ
์ผ๋จ ๊ธฐ์กด์ ๋ง๋ค์๋ Work ์ธ์คํด์ค์ ์ ์์ ํ์ฌ ๊ธฐ์กด์ ์์ ์ ํ๋ ๊ฒ์ ํฉ๋๋ค.
์ผ๋จ docker์ ๋ํ ์ค์น์ ๋ก๊ทธ์ธ์ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ๊ณต๊ฐํค๋ฅผ ๋ฑ๋ก์ ํ๊ฒ ์ต๋๋ค.
# worker-instacne์์ ~/.ssh ๊ถํ์ค์
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# jenkins-instance์ ๊ณต๊ฐํค๋ฅผ worker-instance ์ธ์ฆํค์ ๋ฑ๋ก
vi ~/.ssh/authorized_keys
์ ํฌ๊ฐ Jenkins ์ธ์คํด์ค์ ์ฐพ์ ๊ฐ์ vi๋ฅผ ํตํด work ์ธ์คํด์ค์ ์ถ๊ฐํ๋ ๋ฐฉ์์ ๋๋ค. ์ ํจ์ค์ ์ฐพ์ ๋ด์ฉ์ ์๋์ ์ถ๊ฐํ๋ ๋ฐฉ์์ ๋๋ค.
๋ง์ฝ์ VI์ ๋ํด์ ์ฒ์ ํ์ต์ ํ์๋ฉด ์ด์ ์ ์์ฑํ ๊ธ์ ์ฐธ๊ณ ๋ฅผ ํด์ฃผ์ธ์.
[Linux] ๋ฆฌ๋ ์ค์ ๋ํด ์์๋ณด์ + ๊ธฐ๋ณธ ๋ช ๋ น์ด
์ฒ์ ๋ฆฌ๋ ์ค์ ๋ํด ์๊ฒ ๋ ๊ฑด ์ด๋ฆด ๋ ์ํ์์ ํด์ปค๋ฅผ ๋ณด๋ฉด ๊ฒ์ ํ๋ฉด์ ์์ด๊ฐ ๋น ๋ฅด๊ฒ ์ฌ๋ผ์ค๋ ์ฅ๋ฉด์ ๋ณด๊ณ ์๊ฒ ๋์๋ค. ์ดํ ์ปดํจํฐ์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ๋ฆฌ๋ ์ค์ ๋ํด ์๊ฒ ๋์๊ณ ๊ทธ
pos04167.tistory.com
์ผ๋จ ์ฌ๊ธฐ์๋ I๋ฅผ ์ ๋ ฅํ๋ฉด Insert ๋ชจ๋๊ฐ ๋๊ณ ๊ฐ์ ์ ๋ ฅํ๊ณ ESC์ ํ๊ณ :WQ์ ์ ๋ ฅํ๋ฉด ์ ๋ ฅ๋ ๋ด์ฉ์ ์ ์ฅ์ ํฉ๋๋ค.
Jenkins ๊ฐ์ธํค๋ฅผ Jenkins ์ฌ์ดํธ publish-over-ssh์ ๋ฑ๋กํ๊ธฐ
cat ~/.ssh/id_rsa
๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ด ๋์จ๋ค. ์ผ๋จ ์ฌ๊ธฐ์ ์ค์ํ ๋ถ๋ถ์ ์์
start, end ๋ถ๋ถ๋ ํ์์ ์ผ๋ก ์ ๋ ฅ์ ํด์ผ๋๋ค. ์ด ๋ถ๋ถ์ ์ถ๊ฐํ์ง ์์์ 5์๊ฐ์ ๋ญ๋นํ๋ค.
์ดํ ๊ณต๊ฐํค๋ฅผ Jenkins ์ฌ์ดํธ์ ์ถ๊ฐ๋ฅผ ํ๋ค.
์ด๋ SSH Servers์ ๋ฑ๋กํ ๊ฐ 4๊ฐ์ ์ ๋ณด๊ฐ ์๋ค.
Name | ๋ณธ์ธ์ด ์ฌ์ฉํ ์์์ SSH ์๋ฒ์ ์ด๋ฆ์ ์ ๋ ฅํ๋ค. |
Hostname | ์ค์ ๋ก ์ ์ํ ์๊ฒฉ ์๋ฒ๋ฅผ ์ ๋ ฅํ๋ค. |
Username | ์ ์ํ ์๊ฒฉ ์๋ฒ์ ์ด๋ฆ - whoami๋ฅผ ํตํด ํ์ธ ๊ฐ๋ฅ |
Remote Directory | ์๊ฒฉ์๋ฒ์์ ์ ์ํ์ฌ ์์ ์ ํ๊ฒ ๋๋ ๋๋ ํ ๋ฆฌ pwd ํ์ธ |
DockerHub ์ด๋ฏธ์ง ๋ฑ๋กํ๊ธฐ
Docker Hub Container Image Library | App Containerization
Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.
hub.docker.com
๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง๋ฅผ ๋ฑ๋ก์ ํ๋ค.
์ด์ ์ ๋ง๋ค์๋ docker image๋ฅผ push ํ๊ณ ๋ฑ๋ก์ด ์ฑ๊ณต์ ์ผ๋ก ๋์๋์ง ํ์ธํ๋ค.
docker push mooh2jj/cpu-bound-application-1
Jenkins Item FreeStyle Project
ํ๋ฆฌ์คํ์ผ ํ๋ก์ ํธ๋ฅผ ํตํ์ฌ ์์ฑ์ ํ๋ค.
์ดํ ๋น๋ ํ ์กฐ์น > Send build artifacts over SSH๋ฅผ ์ ๋ ฅํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ๋์จ๋ค.
์ฌ๊ธฐ์ Exec command๋ฅผ ์ถ๊ฐ๋ก ์ ๋ ฅ์ ํ๋ค.
nohup docker run -p 8081:8080 kimmugeon/cpu-bound-applicatoin-1:tag > /dev/null 2>&1 &
์ด๋ tag๊ฐ ์ค์ํฉ๋๋ค. ์ด ๋ถ๋ถ์์ ๋ง์ ์ค์๋ฅผ ํ์ต๋๋ค.
์ด๋ 8081์ Work ์ธ์คํด์ค์ ํฌํธ์ด๋ค. ์ด ๊ฒฝ์ฐ์๋ ์์์ ํ๋ ์ธ๋ฐ์ด๋ ๊ท์น ์ค์ ์ ํด์ผ๋๋ค.
์ดํ ๋น๋๋ฅผ ํ๊ณ Console Output์ ํ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ์ถ๋ ฅ์ด ๋๋ค. ์ดํ Work ์ธ์คํด์ค์ ํ๋ ฅ์ IP๋ฅผ ์ด์ฉํ์ฌ ํ์ธ์ ํ๋ฉด ์ ์์ ์ผ๋ก ์ถ๋ ฅ์ด ๋๋ค.
์ดํ ์ฑ๊ณต์ ์ธ ๋ก์ง์ด ๋์ํ๋ค.
์ดํ ์ถ๊ฐ์ ์ธ log ํ์ธํ๊ธฐ
# ๊ผฌ๋ฆฌ๋ถํฐ ๋ณด๋ ๋ช
๋ น์ด
# docker contrainer์์ ํ์ธ์, docker exec ๋ช
๋ น์ด๋ก ๋ค์ด๊ฐ์ผ ํ๋ค.
cd ~
tail -f nohup.out
์ถ๊ฐ
Jeinkins/Docker ๋ช ๋ น์ด๋ก FreeStyle publish-over-ssh ๋ฐฐํฌํ๊ธฐ
๋๊ฐ์ง ์ธ์คํด์ค๊ฐ ํ์ํ๋ค.ํ๋๋ ์ค์ ๋ฐฐํฌ๋์ด์ ๋์ค๋ worker-instance,๋๋จธ์ง๋ ํ๋๋ jenkins๊ฐ ์ค์น๋ jenkins-instace์ด๋ค.worker-instance์๋ ๋์ปค๋ฅผ ์ค์นํ๋ค.์ฐ๋ถํฌ ๋ฒ์ ์ ๋์ปค ์ค์น๋ ๋ค์ ๋ช
velog.io
Jenkins๋ฅผ ํ์ฉํ SpringBoot gradle ๋น๋&๋ฐฐํฌ
์๋ก์ด Item > ํ๋ก์ ํธ๋ช docker-jenkins-github-test์ผ๋ก.Freestyle project๋ก ํด๋์๋ค.์์ค์ฝ๋๊ด๋ฆฌ > GitRepositroy URL -> ๋ฐฐํฌํ ํ๋ก์ ํธ URL ์ด๋ฆ์ ์ ๋ ฅํ๋ค.๊ทธ๋ค์ Add build step์ ๋๋ฌ Invok
velog.io
Docker/Jenkins๋ฅผ ํ์ฉํ ์น์๋ฒ ์๋ ๋ฐฐํฌ & Docker Image ์๋ ๋ฐฐํฌ
Docker with SpringBoot ์ด๋ฒ์๋ Spring Boot๋ก ์์ฑํ ํ๋ก์ ํธ๋ฅผ Jenkins์ Docker๋ฅผ ํ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ณ ๊ทธ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก EC2์ ์๋ ๋ฐฐํฌํ ์์ ์ด๋ค. Docker image๋ฅผ ์์ฑํ๊ธฐ์ ์์ ๊ทธ ์ด๋ฏธ
junghwanta.tistory.com
'๐ AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ AWS ] Docker + AWS EC2 Aphache/ MySQL ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ (0) | 2023.04.21 |
---|---|
[ Jenkins ] Jenkins FreeStyle Github ๋ฐฐํฌํ๊ธฐ (0) | 2023.04.21 |
[ Jenkins ] Jenkins CI/CD ๋ฌด์์ธ๊ฐ? (0) | 2023.04.15 |
[ AWS ] AWS๋ ์นํด์ง๊ธฐ - 3 (Docker๋ฅผ ์ด์ฉํด์ ๋ฐฐํฌํ๊ธฐ) (0) | 2023.04.07 |
[ AWS ] AWS๋ ์นํด์ง๊ธฐ -2 (์๊ฐ ์ค์ ) (0) | 2023.04.07 |